使用Datagridtemplatecolumn將WPFDatagrid綁定到組合框。發現難以獲得組合框的selectedItem。發現了類似的例子,但這不能解決我的問題。WPF Datagrid MVVM:使用DatagridTemplateColumn的組合框綁定
請找我的XAML的代碼段,下面的數據結構:
public class X
{
public X()
{
abc = new ObservableCollection<P>();
}
public ObservableCollection<P> Y
{
get { return abc; }
set { abc = value; PropertyChanged("Y"); }
}
}
public class P
{
private string id;
private string name;
public string ID
{
get
{
return id;
}
set
{
id = value;
InvokePropertyChanged("ID");
}
}
public string Name
{
get
{
return name;
}
set
{
name = value;
InvokePropertyChanged("Name");
}
}
}
我上面定義的數據結構實現INotifyPropertyChanged接口。現在
<controls:DataGrid Name="datagrid" AutoGenerateColumns="False" ItemsSource="{Binding XList}" Grid.Row="0"
SelectedItem="{Binding SelectedX, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<controls:DataGrid.Columns>
<controls:DataGridTemplateColumn Header="Yl">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Y}"
IsSynchronizedWithCurrentItem="False" DisplayMemberPath="Name"
SelectedValue="{Binding Path=SelectedY, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True}"
SelectedValuePath="SelectedY"
SelectedItem="{Binding SelectedY, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
</controls:DataGrid.Columns>
</controls:DataGrid>
,鑑於模型,具有X即的Xlist列表的一個的ObservableCollection並且被綁定到在XAML的數據網格。並在綁定到Combobox的數據網格的每一行內有Y。有財產已選擇Y,綁定到組合框的SelectedItem。 也有一個屬性爲SelectedX綁定到datagrid的selectedItem,它工作正常。
問題無法獲取Combobox的Selected Item綁定。當選擇發生變化時,無法爲組合框設置所選項目。
任何人都可以幫我設置組合框的selecteditem綁定?