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 |