ObservableCollection<ItemPedido> Items
但现在在Fluent nHibernate我不知道如何使用它。 是否有一种简单的方法可以使用Fluent nHibernate的ObservableCollection? 我注意到有一个DLL NHibernate.Collection.Observable;
但我不知道如何替换使用IList的当前代码:
public virtual IList<ItemPedido> Items
{
get { return _Items; }
set { _Items = value; OnPropertyChanged(System.Reflection.MethodBase.GetCurrentMethod().Name.Substring(4)); /*OnPropertyChanged("Items");*/ }
} private IList<ItemPedido> _Items;
如何更改上面的代码使其与Observable Collection和Fluent nHibernate一起使用?
答案 0 :(得分:3)
继续使用ObservableCollection<T>
作为IList<T>
的实施 - 无需更改业务代码。
所有你需要做的就是配置NHibernate在执行延迟加载时用NhibernateObservableCollection在内部替换IList<T>
。
我用过
uNhAddIns.WPF.Collections.Types.ObservableListType<T>
来自Unofficial NHibernate Addins (unhaddins)。
但是,任何其他NhibernateObservableCollection的实现都可以。
在fluent-nibernate-with-wpf-convention-to-use-unhaddins-observablelisttypet-as-Default,你找到了我用来配置带有Fluent nHibernate的ObservableCollection的例子。
注意是否要使用uNhAddIns.WPF.Collections.Types.ObservableListType<T>
:没有二进制分发,所以你必须自己从c#sourcecode编译uNhAddIns.WPF.dll。
答案 1 :(得分:2)
您可以使用本文中的代码 - http://www.codeproject.com/KB/WPF/WpfNhibernateToolkit.aspx,或者您可以添加自定义数据视图并将Items属性包装到另一个属性中,就像在此处完成的那样 - http://www.shawnduggan.com/?p=46和http://www.shawnduggan.com/?p=84