silverlight依赖属性回调方法保持循环

时间:2013-09-04 16:03:56

标签: silverlight silverlight-4.0 silverlight-5.0 silverlight-toolkit

我创建了一个具有三个依赖项属性的用户控件 选定的价值 选定的项目 选定的指数 当其中一个在回调中改变时,我正在设置另外两个,例如,如果选择的值已更改,我正在设置所选索引和所选项目,其结果是触发其他每个属性的回调,其中它设置其他两个属性并继续loop .how避免这种情况

1 个答案:

答案 0 :(得分:0)

这很简单,

当您设置的值与现有值不同时(通过调用GetValue()),每个Property Setter中的

仅设置另外两个。添加一个If语句以在每个Property setter中检查它。

您应该更加小心这些类型的情况,要么检查您是否真的需要这三个属性作为依赖属性,或者如果您正在使用MVVM框架,请将其中一些属性更改为ViewModel中的常规属性。

如果您正在使用MVVM,许多框架都提供了一种方法来抑制ReactiveUI(ReactiveObject.SuppressChangeNotifications())或MVVM Light Tookit等通知。