【发布时间】:2016-08-03 21:31:23
【问题描述】:
我可能会问到与此类似的问题,但我仍然需要答案或示例。我需要确保内置的 WPF Datagrid 是否支持组合框列编辑?如果是这样,请给我一个工作示例。虽然我可能会发现几个,甚至很多,但它们存在以下一些问题:
1.过时,无法用当前的Visual Studio(2013或2015)编译
2.不工作
3.需要第 3 方控件,例如 WPF Toolkit。这更令人困惑。我可能会发现很多不同的版本,但效果不佳。现在我只想知道内置的Datagrid是否可以工作。
4.combobox 选项不是来自键值列表(或其他列表)。我知道我需要指定 SelectedItemBinding、SelectedValueBinding、SelectedValuePath、isplayMemberPath。这太令人困惑了。我就是搞不定。
我已经尝试过 ObservableCollection。不要出什么问题。如果您有一个真正有效的示例,请用代码回复我。谢谢!
【问题讨论】:
-
您希望将 DataGrid.ItemsSource 绑定到代表您的行数据的任何模型类的 ObservableCollection。在 XAML 中与
{Binding ...}绑定,不要在代码隐藏中乱七八糟。对于组合框列,this question and its answer 应该可以帮助您克服困难。 -
然而,在这个例子中,如果我需要使用 DataGrid RowEditEnding 事件来捕获改变的组合框值,我发现它从未改变过,无论我尝试从视图模型还是网格中获取它。我还应该补什么? (对了,使用WpfToolkit是不允许有RowEditEnding事件的,需要恢复到DataGrid内置的VS)。
-
我需要查看代码才能对此进行说明。请显示代码,请。在 XAML 中,您需要学习从数据绑定而非事件的角度进行思考。你不需要任何事件来做任何事情。您需要数据绑定。尽可能避免第三方。顺便说一句,我不知道“需要恢复到 DataGrid 中内置的 VS”是什么意思。对我来说看起来像是随机的单词序列。你能澄清一下吗?谢谢!
-
哦,我自己也发现了问题。绑定应该是 {Binding status, UpdateSourceTrigger=PropertyChanged}。现在它工作得很好。我很感激!
-
太棒了!很高兴听到它!
标签: c# wpf xaml combobox datagrid