tig*_*tig 2 silverlight windows-phone-7 mvvm-light
我想在我的Mvvm-Light解决方案(WP7)中使用一个类(称为PremiseServer)来订阅从基类型派生的类的所有属性更改(SysObject是基类,它派生自ViewModel).
我有一组派生自SysObject的类.这些类具有不同类型的各种属性(字符串,布尔值,整数等...).
当任何这些类上的任何属性发生更改时,我希望我的PremiseServer实例看到这些更改,然后进行Web服务调用以将数据推送到服务器.
我已经尝试了这个,它永远不会被调用(这对我来说很有意义;因为正在改变的属性不是SysObject,而是SysObject的一些属性):
Messenger.Default.Register<PropertyChangedMessage<SysObject>>(this, (action) => {
String location = ((SysObject)action.Sender).Location; // URL to POST to
Debug.WriteLine("PremiseServer PropertyChange - " + action.NewValue.ToString());
});
Run Code Online (Sandbox Code Playgroud)
我也尝试了下面的(注册字符串消息),它可以工作,但我不想为每种属性类型创建其中一个:
Messenger.Default.Register<PropertyChangedMessage<String>>(this, (action) => {
String location = ((SysObject)action.Sender).Location; // URL to POST to
Debug.WriteLine("PremiseServer PropertyChange - " + action.NewValue.ToString());
});
Run Code Online (Sandbox Code Playgroud)
我也试过Register<PropertyChangeMessage<Object>想我会看到所有派生类型的消息(我没有).
我真正想要的是"从SysObject类的对象的任何属性注册所有属性更改密码".我怎样才能做到这一点?
谢谢!
您可以使用PropertyChangedMessageBase具有布尔标志作为最后一个参数的注册方法重载,并且这个标志设置为true注册.与其名称一样,此标志允许您注册消息类型或从此类型派生的所有消息.
请注意,在处理程序中,您需要将消息强制转换为要处理的确切类型.
是否有意义?干杯,洛朗
| 归档时间: |
|
| 查看次数: |
1261 次 |
| 最近记录: |