我有一個數據網格,我有兩列month(值:1 2 3 4 5 6 7 8 9 10 1112和月份類型(值1,2,3)四分之一 如何將月份類型組合框的值添加到?選擇如何將值添加到datagridcombobxcolumn?
在我的數據實體一個月類型被定義爲
公共字節MonthTypes;
我有一個數據網格,我有兩列month(值:1 2 3 4 5 6 7 8 9 10 1112和月份類型(值1,2,3)四分之一 如何將月份類型組合框的值添加到?選擇如何將值添加到datagridcombobxcolumn?
在我的數據實體一個月類型被定義爲
公共字節MonthTypes;
您可以在DataGrid中使用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
ObservableCollection<Model> _models;
public ObservableCollection<Model> Models { get { return _models; } set { _models = value; RaisePropertyChanged("Models"); } }
可以使用DataGridTemplateColumn
,類似於下面的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。