Unter der Annahme, dass dies Ihr Modell:
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));
}
}
und es gibt eine ObservableCollection in der Ansicht Modell
ObservableCollection<Model> _models;
public ObservableCollection<Model> Models { get { return _models; } set { _models = value; RaisePropertyChanged("Models"); } }
Sie die DataGridTemplateColumn
verwenden können, ähnlich den folgenden 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>
nicht vergessen:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Natürlich können Sie die ComboBox ItemsSource auch an ein Enum binden.