【问题标题】:silverlight dependency property call back method keeps in loopsilverlight 依赖属性回调方法保持循环
【发布时间】:2013-09-04 16:03:55
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    这很简单,

    仅当您设置的值与现有值不同时(通过调用 GetValue()),在每个属性设置器中设置其他两个。添加一个 If 语句以在每个属性设置器中检查这一点。

    你应该更加小心这些类型的情况,要么检查你是否真的需要这 3 个属性作为依赖属性,或者如果你使用的是 MVVM 框架,则将其中一些属性更改为 ViewModel 中的普通属性。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 2011-07-23
      • 2016-07-12
      相关资源
      最近更新 更多