所以,我有一个客户表,包含客户记录,记录,每个记录都有一个customertype 字段。我还有一个 customertype 表,其中包含 customertype 字段的有效值。
我需要一个 WPF 来做 CRUD。(创建、查看、更新、删除)。
显而易见的解决方案是使用 ComboBox,其 SelectedValue 属性绑定到 customertype 字段,其 ItemsSource 属性绑定到由 customertype 表的查询填充的列表。
问题是,除了你在练习中看到的那种简单问题之外,这不起作用。
当您查看或编辑具有不在 customertype 表中的 customertype 值的客户记录时,就会出现困难。这可能是错误发生的,也可能是因为 customertype 已被弃用并从表中删除。
在这种情况下,WPF 所做的是将 customertype 字段设置为 null,因为 SelectedValue 不在 ItemsSource 列表中。这是一个问题。
如果您只是查看,您应该看到表中的值,无论它是否在列表中。如果您正在编辑,您可以提出一个合理的论点,即您也应该显示表中的值,至少最初是这样,但如果您更改选择,您将无法获得您开始的内容。
那么,有什么想法吗?这是一个几乎在我拥有的每个编辑/查看表单上都会出现的问题,所以我更喜欢在使用时相当干净的东西。(也就是说,考虑到 XAML 中的复杂性选择,我需要处理这些字段之一的每个地方,或者支持我插入的 XAML 以处理这些字段之一的代码中的复杂性,我更喜欢后者。)