달이 두 개인 월 (값 : 1 2 3 4 5 6 7 8 9 10 1112 및 달 유형 (값 1, 2, 3)) 분기가있는 데이터 격자가 있습니다 월 유형 콤보 박스에 값을 추가하는 방법 ? 선택DataGridcombobxColumn에 값을 추가하는 방법은 무엇입니까?
을 내 데이터 엔티티 개월 형에서가
로공공 바이트 MonthTypes 정의된다.
이달이 두 개인 월 (값 : 1 2 3 4 5 6 7 8 9 10 1112 및 달 유형 (값 1, 2, 3)) 분기가있는 데이터 격자가 있습니다 월 유형 콤보 박스에 값을 추가하는 방법 ? 선택DataGridcombobxColumn에 값을 추가하는 방법은 무엇입니까?
을 내 데이터 엔티티 개월 형에서가
로공공 바이트 MonthTypes 정의된다.
이당신은 당신의 데이터 그리드에 DataGridComboBoxColumn를 사용하고 값 목록에 ItemsSource를 설정할 수 있습니다
<DataGridComboBoxColumn Header="My header"
SelectedValueBinding="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding ListOfValues}"/>
이 모델이라고 가정 :
public class Model : INotifyPropertyChanged
{
int _quarter;
public int Quarter { get { return _quarter; } set { _quarter = value; RaisePropertyChanged("Quarter"); } }
int _month;
public int Month { get { return _month; } set { _month = value; RaisePropertyChanged("Month"); } }
public event PropertyChangedEventHandler PropertyChanged;
internal void RaisePropertyChanged(string propname)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propname));
}
}
및
ObservableCollection<Model> _models;
public ObservableCollection<Model> Models { get { return _models; } set { _models = value; RaisePropertyChanged("Models"); } }
당신은 DataGridTemplateColumn
를 사용할 수있는 뷰 모델의 ObservableCollection에가, 다음 XAML과 유사한
<DataGrid DataContext="{Binding}" ItemsSource="{Binding Models}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox SelectedValue="{Binding Month, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<sys:Int32>1</sys:Int32>
<sys:Int32>2</sys:Int32>
<sys:Int32>3</sys:Int32>
<sys:Int32>4</sys:Int32>
<sys:Int32>5</sys:Int32>
<sys:Int32>6</sys:Int32>
<sys:Int32>7</sys:Int32>
<sys:Int32>8</sys:Int32>
<sys:Int32>9</sys:Int32>
<sys:Int32>10</sys:Int32>
<sys:Int32>11</sys:Int32>
<sys:Int32>12</sys:Int32>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox SelectedValue="{Binding Quarter, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<sys:Int32>1</sys:Int32>
<sys:Int32>2</sys:Int32>
<sys:Int32>3</sys:Int32>
<sys:Int32>4</sys:Int32>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
잊지 마세요 :
xmlns:sys="clr-namespace:System;assembly=mscorlib"
물론 ComboBox ItemsSource를 Enum에도 바인딩 할 수 있습니다.