【发布时间】:2025-12-08 22:20:06
【问题描述】:
使用 Datagridtemplatecolumn 将 WPFDatagrid 绑定到组合框。很难获得组合框绑定的 selectedItem。找到了类似的例子,但这并没有解决我的问题。
请在下面找到我的 XAML 的代码 sn-p 和数据结构:
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,即绑定到 XAML 中的数据网格。并在绑定到组合框的数据网格的每一行中都有 Y。有一个属性为 SelectedY,绑定到组合框的 SelectedItem。 还有一个属性作为 SelectedX 绑定到数据网格的 selectedItem,它工作正常。
Issue 无法获取 Combobox 的 Selected Item 绑定。选择已更改时,无法为组合框设置所选项目。
谁能帮我设置组合框的选定项绑定?
【问题讨论】:
标签: wpf mvvm wpfdatagrid