我有两个对象绑定到相同的dependencyProperty(在Silverlight中)。
有没有办法确定这两个对象中的哪个更改了属性?
我想根据这些信息采取不同的行动。

不幸的是,我无法附加两个不同的eventHandlers(because it's a dependencyProperty

   public int StartTime
    {
        get { return (int)GetValue(StartTimeProperty); }
        set { SetValue(StartTimeProperty, value); }
    }
    public static readonly DependencyProperty StartTimeProperty =
        DependencyProperty.Register("StartTime", typeof(int), typeof(Step),
        new PropertyMetadata(-1, new PropertyChangedCallback(OnStartTimeChanged)));

    private static void OnStartTimeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        ((Step)d).OnStartTimeChanged(e);
    }

    protected virtual void OnStartTimeChanged(DependencyPropertyChangedEventArgs e)
    {
        //if set from obj1 -> do something
        //if set from obj2 -> do something else
    }


在此示例中,我将从不同的对象设置StartTime属性,并且我想知道其中哪个对象更改了该属性。

谢谢

最佳答案

您可以:


看看事件处理程序中的发送者
将两个控件都附加到不同的事件处理程序

关于c# - 如何确定更改了DependencyProperty的原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4315203/

10-13 07:31