Art*_*yba 0 .net c# wpf binding mvvm
我有一个带Combobox的DataGrid
<DataGridComboBoxColumn Header="Header 2" ItemsSource="{Binding Pet}">
Run Code Online (Sandbox Code Playgroud)
基于MVVM模式的项目.当我尝试在TextColumn上显示数据时,它可以工作
<DataGridTextColumn Header="Header 1" Binding="{Binding ID}" />
Run Code Online (Sandbox Code Playgroud)
但是,我不知道,如何绑定DataGridComboBoxColumn的数据.
型号代码:
public string ID
{
get { return _id; }
set { _id = value; NotifyPropertyChanged("ID"); }
}
public string[] Pet
{
get { return _pet; }
set { _pet = value; NotifyPropertyChanged("Pet"); }
}
Run Code Online (Sandbox Code Playgroud)
而不是<DataGridComboBoxColumn>使用<DataGridTemplateColumn>像这样的尝试
<DataGridTemplateColumn Header="ID">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=DataContext.Pet, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" SelectedItem="{Binding ID}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我将我的Combobox项目源绑定为当前ViewModel中定义的Pet数组集合,并将所选项目绑定为绑定到完整DataGrid的List <>集合的ID属性.