Language53 [C#/WPF] 2차원 배열 INotifyPropertyChanged 미발생 1. double[,] 로 2차원 배열을 만들고 안에 있는 값을 지속적으로 변경하는데도 INotifyPropertyChanged 이벤트가 발생하지 않음 다차원 배열의 경우, 배열 자체가 속성으로 사용될 때 INotifyPropertyChanged 이벤트가 자동으로 발생되지 않는다고 함 왜냐하면, INotifyPropertyChanged 이벤트는 속성(Property) 값이 변경될 때 발생하는 이벤트인데 다차원 배열은 객체가 아닌 값 형태로 취급되기 때문에 배열 자체의 참조는 변하지 않기 때문이라고 함. 2023. 8. 25. [C#/WPF] Border 내부 이미지 CornerRadius 적용 아래 코드와 같이 Border 내부에 이미지를 넣고 CornerRadius를 적용시키면 이미지도 동일하게 적용될 줄 알았으나, Border의 테두리만 둥글게 표시될 뿐 이미지의 테두리는 그대로였다. // 이전코드, Border에만 CornerRadius가 적용되고 Image는 사각형으로 표시됨 Border 내부에 Image를 넣는 방식이 아니라, Border의 Background의 ImageBrush를 사용하여 원하는대로 구현할 수 있었다. // 변경코드, 이미지도 동일하게 테두리가 둥글게 표시됨 2023. 7. 21. [C#] 실수에서 정수형 변환 실수값을 정수값으로 바꾸고 싶을 때 주로 아래와 같이 변환했다. double a = 12.34; int b = Convert.ToInt32(a); 그런데, 이렇게 변환하면 정수 부분만을 가져오는 것이 아니라 값을 반올림해서 처리하는 것 같다. 반올림, 올림, 내림을 하는 방법은 아래와 같다. // 반올림 Math.Round double a = 4.3; int b = Convert.ToInt32(Math.Round(a)); // b = 4; // 올림 Math.Ceiling double a = 4.3; int b = Convert.ToInt32(Math.Ceiling(a)); // b = 5; // 내림 Math.Truncate double a = 4.3; int b = Convert.ToInt32(Mat.. 2023. 7. 14. [C#/WPF] 속성 정의 (get set 접근자) MVVM 패턴을 연습하면서 자주 사용하였는데, 그 의미를 잘 몰랐다. private string _stringValue; public string StringValue; { //get 접근자 : 속성의 값을 반환 (속성을 읽을 때 사용) get { return _stringValue; } //set 접근자 : 속성의 값을 설정 (속성에 값을 할당할 때 사용) set { _stringValue = value; OnPropertyChanged(nameof(StringValue)); } } StringValue의 값을 사용할 때 _stringValue의 값을 반환해서 사용하도록 하고, StringValue의 값을 설정할 때 _stringValue의 값에도 동일하게 설정한 후 Property가 변경되었음을 알린다 2023. 7. 11. [C#] 람다표현식과 표현식바디 평소에 RelayCommand를 사용할 때 아래와 같이 사용했었는데, 더 간결하게 표현이 가능한 방법을 알게되었다. Button1Command = new RelayCommand(OpenSerialPort); private void OpenSerialPort() { getSerialData.OpenSerialPort(); } - 람다 표현식 Button1Command = new RelayCommand(() => getSerialData.OpenSerialPort()); - 표현식 바디 (C# 7.0 이상) Button1Command = new RelayCommand(OpenSerialPort); private void OpenSerialPort() => getSerialData.OpenSerialPort(); 2023. 7. 11. [C#/WPF] BooleanToVisibilityConverter 체크박스를 이용해서 컨트롤의 Visibility를 제어하는데 BooleanToVisibilityConverter를 사용해서 구현했다. // xaml코드 //...(생략) // 체크박스, IsChecked 속성을 IsCheckBox1Checked와 바인딩 // 라벨, Visibility 속성을 IsCheckBox1Checked를 // Bool2Vis로 Convert해서 적용 // ViewModel 코드 public class MainViewModel : INotifyPropertyChanged { private bool _isCheckBox1Checked; public bool IsCheckBox1Checked { get { return _isCheckBox1Checked; } set { _isCheckB.. 2023. 7. 3. 이전 1 2 3 4 ··· 9 다음