[ INotifyPropertyChanged 는 언제 쓰는 것일까? ]

 

원본 속성 또는 대상 속성이 변경되면 다른 항목이 자동으로 업데이트되도록 하고 싶을 때, INotifyPropertyChanged 를 구현한다.

 

사용예시) 관리자가 추가,수정,삭제 될때마다 변동된 데이터를 바로 전체 프로그램에 반영시키고 싶을 경우

 

 

[ INotifyPropertyChanged 구현방법 ]

 

1.   INotifyPropertyChanged를 상속받는다.

2.   인터페이스를 구현한다.

 

- 빨간 물결밑줄이 쳐진 INotifyPropertyChanged 위에 마우스 커서를 올려놓으면 뜨는 창에서 잠재적 수정 사항 표시를 클릭한다 

- using System.ComponentModel; 을 클릭한다

- 다시 한번더 , 빨간 물결밑줄이 쳐진 INotifyPropertyChanged 위에 마우스 커서를 올려놓으면 뜨는 창에서 잠재적 수정 사항 표시를 클릭한다 

- 인터페이스 구현을 클릭한다

- 해당 코드가 생성된 것을 확인한다.

 

3.   OnPropertyChanged 메서드를 생성한다.

-  public event PropertyChangedEventHandler PropertyChanged; 코드 아래에 밑의 코드를 추가시킨다

 

        protected void OnPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(name));
            }
        }

 

-     OnPropertyChanged 메서드란,  name 에 해당하는 이름을 갖는 데이터에 변화가 생길때마다 이벤트를 발생시키는 메서드이다.

 

4.   변수의 set 접근자 안에 OnPropertyChanged 메서드를 호출한다.

 

- 변수의 set 접근자 안에 밑의 코드를 넣는다.

 

OnPropertyChanged("변수이름");

- 예시코드입니다. 그럼 예를들어 product 이름이 바꼈을 경우 OnPropertyChanged()가 호출되어 이벤트 발생시킨다

5.   Xaml에 TwoWay-binding 하기

- xaml 에서 Text="{Binding 바인딩시킬 데이터 이름 , UpdateSourceTrigger=PropertyChanged}" 을 넣는다. 그러면 사용자가 예를들어 관리자의 이름을 변경했을 경우 바로 Property가 Changed 된다.

- 코드 예시

 

[ 참고자료 ]

 

INotifyPropertyChanged 구현시 참고한 사이트

 https://docs.microsoft.com/ko-kr/dotnet/framework/wpf/data/how-to-implement-property-change-notification

- https://docs.microsoft.com/ko-kr/dotnet/framework/wpf/data/how-to-control-when-the-textbox-text-updates-the-source

 

TwoWay,OneWay 등등의 개념 잡을 때 참고한 사이트

https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.data.bindingmode?view=netframework-4.8#System_Windows_Data_BindingMode_TwoWay

반응형

+ Recent posts