【发布时间】:2019-03-25 13:47:42
【问题描述】:
当我尝试在我的 WPF usercontrol 数据网格中插入或更新数据时,数据没有保存到相应的属性中。这是由(至少我相信)我的绑定属性具有[NotMapped] 属性引起的,所有其他没有注释的属性都正常工作。
需要更新的数据位于DataGrid 组件中,该组件绑定到具有适当模型的ObservableCollection。在模型内部有几个带有[NotMapped] 注释的属性,这些属性应该在我的数据库中创建表(模型)时排除,尽管我确实需要它们来绑定输入,因此使用[NotMapped] 注释.
由于数据绑定到ObservableCollection,我无法将[NotMapped] 属性直接添加到usercontrol(因此它们不会成为模型的一部分)。
以下示例:
XAML 的一部分
在下图中,我们可以看到 1 个属性 (pBreedte),它是 NotMapped 属性中的 1 个,以及 datagrid 中的 itemsource:
在 ObservableCollection 中使用的部分模型
有什么方法可以存储/保存NotMapped 属性值?
最简单的方法是在数据库中包含 NotMapped 属性(因此完全删除注释),但我试图避免这种情况。
更多背景信息
添加 NotMapped 值是因为它们用作占位符属性。最初我有几个decimal 属性直接绑定到datagrid,但是文本框不能很好地处理十进制值(WPF validation rule preventing decimal entry in textbox?)。所以我为这些十进制属性创建了一个字符串占位符,当保存表单时,十进制属性被设置为它们的字符串占位符对应项。这样,用户可以添加小数位,而无需使用delay、value converter 或其他任何东西。
【问题讨论】:
-
您能否将 NotMapped 属性删除到它们自己的类中。这样,您将有 1 到 1 个班级供您选择。然后单独处理NotMapped?
标签: c# wpf entity-framework-6