解释这在C#中意味着什么?

时间:2011-04-26 13:55:29

标签: c# .net linq

NotifyOfPropertyChange<ObservableCollection<BaseMdmViewModelCollection>>(() => SubItemsViewModels);

4 个答案:

答案 0 :(得分:3)

它正在调用带签名的通用函数

NotifyOfPropertyChange<T>(Func<BaseMdmViewModelCollection>)

() => SubItemsViewModels

相同
delegate { return SubItemsViewModels; }

换句话说,

NotifyOfPropertyChange<ObservableCollection<BaseMdmViewModelCollection>>(() => SubItemsViewModels);

相同
NotifyOfPropertyChange<ObservableCollection<BaseMdmViewModelCollection>>(Foo);

Foo将在哪里

private BaseMdmViewModelCollection Foo()
{
    return SubItemsViewModels;
}

答案 1 :(得分:3)

简单来说:当可观察集合发生变化时,返回子项目视图模型。

答案 2 :(得分:0)

我愿意打赌你的NotifyOfPropertyChange方法正在使用Func来简单地获取已更改的属性的名称。这为您提供了属性更改的编译时安全性,这比说NotifyPropertyChange("SubItemsViewModels")更为可取。此方法在WPF和Silverlight数据绑定中广泛使用,但也是一种在许多场景中有用的通用模式。

答案 3 :(得分:0)

你有一个方法 NotifyOfPropertyChange(Func func),在你的情况下,T1是BaseMdmViewModelCollection。

SubItemsViewModels来自ObservableCollection类型

这是一种传递任何返回集合的函数而不是直接传递集合的方法。

干杯,

吉拉德