본문 바로가기
WPF

03. WPF MVVM(2) INotifyPropertyChanged

by NaHyungMin 2020. 8. 21.

2020/08/21 - [WPF] - 02. WPF MVVM(1) View-ViewModel 연결

public class AllotmentViewModel : PropertyChangedBase
{
	public AllotmentView ViewWindow { get; set; }

	 public DataTable Grade1Grid
        {
            get { return grade1Grid;  }
            set
            {
                grade1Grid = value;
                OnPropertyChanged();
            }
        }
        
        public DataRowView GradeRowView
        {
            set
            {
                GradeGrideClick(value);
                OnPropertyChanged();
            }
        }
}
public class PropertyChangedBase : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string name = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }
    }

 

 

INotifyPropertyChanged을 만들어 놓고, 상속받아 사용했다.

 <DataGrid x:Name="grade1Grid" FocusManager.IsFocusScope="True" Background="Transparent" CanUserSortColumns="False" CanUserAddRows="False" IsReadOnly="True"
 	CurrentItem="{Binding GradeRowView, Mode=TwoWay}" SelectionMode="Single" SelectionUnit="Cell" FontSize="12pt"
 	AutoGenerateColumns="False" ItemsSource="{Binding Grade1Grid, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

 

그리드의 정보는 다음과 같다.

ItemsSource="{Binding Grade1Grid, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}

DataTable 속성 이름인 Grade1Grid에 양방향 감시를 걸고, 변경이 있을 때 실행한다.

 

CurrentItem="{Binding GradeRowView, Mode=TwoWay}"

선택이 일어나면 GradeRowView를 호출해준다.

 

Model 클래스를 따로 만들어 다음과 같이도 호출 가능하다.

public ObservableCollection<Model> ModelList
{
    get { return modelList; }
    set
	{
		modelList = value;
		OnPropertyChanged();
	}
}

 

'WPF' 카테고리의 다른 글

07. WPF DataGrid Click 위치로 정보 가져오기  (0) 2020.08.21
06. WPF DataGridViewHelper  (0) 2020.08.21
04. WPF MVVM(3) RelayCommand  (0) 2020.08.21
02. WPF MVVM(1) View-ViewModel 연결  (0) 2020.08.21
01. WPF DataGrid Text Center  (0) 2020.05.30