C# 编辑结束时,DataGridComboxColumn不会在单元格中显示选定项
当我从DataGridComboBoxColumn中选择一个项目时,我遇到了一个问题。将焦点移动到下一个单元格后,该单元格不会显示我选择的项目的名称。这是我的代码:C# 编辑结束时,DataGridComboxColumn不会在单元格中显示选定项,c#,wpf,wpfdatagrid,datagridcomboboxcolumn,C#,Wpf,Wpfdatagrid,Datagridcomboboxcolumn,当我从DataGridComboBoxColumn中选择一个项目时,我遇到了一个问题。将焦点移动到下一个单元格后,该单元格不会显示我选择的项目的名称。这是我的代码: DataGridComboBoxColumn cb1 = new DataGridComboBoxColumn(); cb1.ItemsSource = listOStrings; cb1.TextBinding = new Binding("listOfStrings"); e.Column = cb1; e.Column.Hea
DataGridComboBoxColumn cb1 = new DataGridComboBoxColumn();
cb1.ItemsSource = listOStrings;
cb1.TextBinding = new Binding("listOfStrings");
e.Column = cb1;
e.Column.Header = "SomeTitle";
其中listOfStrings是用户正在更新的列表。我有另一个DataGridComboxColumn,它的ItemSource设置为未更新的字符串列表。虽然这两个的代码是相同的,但它显示的文本很好。我想知道为什么我的cb1组合框在离开单元格后不会显示值,而另一个会显示值?我从来没有像您这样绑定过-您考虑过将UI移动到XAML并将数据绑定到ViewModel吗?是一个很棒的关于数据绑定组合框的分步示例。您只需要让组合框也是DataGrid中的一列—类似于。当WPF中的绑定连接到非静态源时,底层源需要实现iNotifyPropertyChanged。在您的情况下,您可能需要使用如下回答的ObservableCollection: 在您的情况下,它看起来像:
private ObservableCollection<string> _listOStrings = new ObservableCollection<string>();
public ObservableCollection<string> ListOStrings
{
get
{
return _listOStrings;
}
set
{
_listOStrings = value;
OnPropertyChanged("ListOStrings");
}
}
private observateCollection\u listOStrings=new observateCollection();
公共可观测收集列表
{
得到
{
返回列表;
}
设置
{
_listOStrings=值;
OnPropertyChanged(“ListOStrings”);
}
}
有关从MSDN更改的InotifyProperty的详细信息,请参阅:
请参阅:谢谢您的回答,在阅读了您发布的Microsoft链接后,我能够使它像一个魔咒一样工作。我没有像我所希望的那样使用XAML,因为我对它有些陌生。虽然你发布的逐步指南帮助我解决了我遇到的另一个问题,这是一个巨大的帮助。谢谢你的回答。没问题-很高兴我能帮忙!另外,如果你想更多地了解XAML,我真的很喜欢视频。从1开始,一路往上爬。祝你好运