【发布时间】:2011-02-20 19:38:07
【问题描述】:
我正在使用 MVVM 和实体框架。我有一个名为“Quote”的实体,其导航属性名为“QuoteProducts”,其中包含报价中的所有产品。
我的 ViewModel 有一个名为“CurrentQuote”的属性,它的类型是“Quote”,我的视图有以下列表框:
<ListBox ItemsSource="{Binding CurrentQuote.QuoteProducts}">
效果很好,在大多数情况下。我加载了一个报价,ListBox 填满了,一切都很棒。但是,当我使用
添加新产品时QuoteProduct product = new QuoteProduct();
product.Product = SelectedProduct;
CurrentQuote.QuoteProducts.Add(product);
新产品未出现在 ListBox 中。我一直在做一些阅读,看起来原因是因为导航属性后面的集合没有通知 UI 它已更改。但我没有找到一种干净的方式让它做到这一点。
我看到一个解决方案需要保留一个单独的 QuoteProducts 列表,绑定到该列表,并在我添加产品时添加到这两个列表中,但这似乎不是正确的方法。
有什么方法可以在我的数据模型中添加功能,以便在集合发生更改时通知它?
【问题讨论】:
标签: wpf entity-framework mvvm binding