我有两个对象绑定到相同的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/