Windows Phone 7.1中的C#SetProperty()方法在哪里?

Windows Phone 7.1中的C#SetProperty()方法在哪里?,c#,.net,data-binding,properties,mvvm-light,C#,.net,Data Binding,Properties,Mvvm Light,我的应用程序是一款C#应用程序,使用MVVM Light,面向Windows Phone 7.1平台。我的视图模型中有一个属性,其源内容通过REST请求从外部web服务器异步检索。该属性经常用于与视图的UI元素绑定 我发现这篇文章展示了正确操作的模式。使用此模式,如果从未设置支持属性的私有数据成员,则属性的初始get请求将返回NULL。异步加载完成后,将调用SetProperty()来更新属性。我的猜测是,这种技术用于避免触发对setter的嵌套调用,同时仍然引发属性的属性更改事件,从而通知绑定

我的应用程序是一款C#应用程序,使用MVVM Light,面向Windows Phone 7.1平台。我的视图模型中有一个属性,其源内容通过REST请求从外部web服务器异步检索。该属性经常用于与视图的UI元素绑定

我发现这篇文章展示了正确操作的模式。使用此模式,如果从未设置支持属性的私有数据成员,则属性的初始get请求将返回NULL。异步加载完成后,将调用SetProperty()来更新属性。我的猜测是,这种技术用于避免触发对setter的嵌套调用,同时仍然引发属性的属性更改事件,从而通知绑定到属性的UI元素。setter是私有的,以避免任何外部代码干扰此模式:

问题是我找不到包含SetProperty()的WP7程序集。我发现这个用于WP7的MVVM示例包含一个自定义示例,但您必须从受保护类派生才能使用它,如果可以避免的话,我不想这样做:


在哪里可以找到用于WP7的SetProperty()方法?

第一个链接中的代码引用metro应用程序,因此它可能位于metro api中。我不知道WindowsPhone7上有像SetProperty这样的方法。这种方法通常可以在mvvm框架中找到。MvvmLight在ViewModelBase类中有一个类似的方法,名为Set,但在调用该方法之前,您仍然必须执行“variable!=value”检查,以防止在分配相同的值时引发PropertyChanged事件。这是不正确的,Set方法负责在提升PropertyChanged之前检查值。事实上,如果引发事件,Set将返回true,否则返回false。这很好。在调用Set方法之前,我一直在执行值比较。感谢@LBugnion的澄清。