[ 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 구현시 참고한 사이트
TwoWay,OneWay 등등의 개념 잡을 때 참고한 사이트
'C#' 카테고리의 다른 글
[ WPF ] 초간단 IValueConverter 구현하기 ( Convert 기능 ) (0) | 2019.11.08 |
---|---|
[ WPF ] Textbox 에 값 입력할때 자동으로 빈칸으로 만들기 (0) | 2019.09.03 |
[ WPF ] Visibility Visible / Hidden 보이기/숨기기 (0) | 2019.06.28 |
[ C# 오류 ] Null Reference Exception : object reference not set to an instance of an object 오류 (0) | 2019.05.17 |
[WPF] Excel 파일 읽어서 Datagrid 에 넣기 : Excel Import (0) | 2019.05.15 |