xar*_*ria 5 c# data-binding wpf combobox mvvm-light
我有一个 Datagrid,双击所选行后,将启动一个编辑屏幕。在此编辑屏幕上,有组合框,其值绑定到网格中的选定行。有时,分配给组合框的值在组合框 itemSource 中不存在,因此组合框上的显示为空,但该值不为空。如果 itemsource 集合中不存在该值,我如何将所选项目的值更新为 null。

在上面的场景中,由于第二个屏幕绑定到第一个屏幕上的 Selected 项,因此 City 的 SelectedValue 是“洛杉矶”,而 Display 是空的。但由于集合中不存在“洛杉矶”,因此 SelectedValue 应为 null。
转换器用于将绑定中的数据转换为所需的结果。(允许源和目标之间匹配不兼容的类型)。
关于组合框和项目源之间使用的转换器的类似问题在这里:
您可以在这里阅读有关转换器的更多信息:
http://wpftutorial.net/ValueConverters.html
在这种情况下,转换器应放置在组合的 selectedItem 属性上。
编辑:
我玩了一下代码示例,并注册了组合框中的选择更改事件。仅当选择项的源产生对组合框有效的选择时才会触发此事件。所以现在我回到原来的建议,该建议应该有效:在转换器中,根据组合框项目的所有值列表检查传入值。如果它不存在,转换器需要让组合知道它应该将其所选项目设置为空。虽然我确信有更简单和优雅的方法可以做到这一点(我不是 WPF 专家),但这应该可以解决问题。
关于如何将转换器与控件挂钩的另一个方法是使用多重绑定:
| 归档时间: |
|
| 查看次数: |
1872 次 |
| 最近记录: |