我怎么知道依赖属性的绑定已经改变了?

时间:2011-07-21 02:02:57

标签: .net wpf xaml data-binding dependency-properties

正如this question中所提到的,至少有两种方法可以通知我绑定到依赖项属性的值已经改变:

  1. DependencyPropertyDescriptor.AddValueChanged
  2. DependencyProperty.OverrideMetadata在具有我自己的PropertyChangedCallback的派生类上。
  3. 这一切都运行正常,但我只需要在属性上设置实际绑定时才会收到通知,而不是每次更改值时。有没有办法为这个或我需要收听的事件注册回调?

    我在MSDN上查看过课程DependencyPropertyDependencyObjectBindingOperationsDependencyPropertyDescriptor

1 个答案:

答案 0 :(得分:0)

我认为没有一种“官方方式”可以做到这一点,虽然我几天前遇到了同样的问题,并提出了一个非常愚蠢但效率最低的解决方法

private bool isSet = false;

public static readonly DependencyProperty DummyProperty =
            DependencyProperty.Register("DummySource",
                                        typeof(DummyType),
                                        typeof(WhateverYouWant),
                                        new PropertyMetadata((s, a) =>
                                        {
                                          if (!isSet)
                                          {
                                            //Blah blah about what you wanna do

                                            isSet = true
                                          }
                                        }));

对我来说工作正常,也应该为你做伎俩:)