由于绑定而发生ValueChanged事件
本文关键字:ValueChanged 事件 于绑定 绑定 | 更新日期: 2023-09-27 18:10:49
在我的WPF项目中,我有一个Value="{Binding Path=. . .}" ValueChanged=" . . ."
滑块控件
在这个ValueChanged
的事件处理程序方法中,我想了解当前事件是由移动滑块的用户发生的还是作为Value="{Binding Path=. . .}"
的结果。
我怎么能理解这个?
Updated: The goal:
我有一组复选框,通过选中其中的任何一个,一些东西被添加到数字。用户也可以改变数字滑动条。滑动条和复选框应该反映彼此的变化。
ValueChanged
的事件处理方法负责在复选框中设置复选,Value="{Binding Path=. . .}"
负责反映数字的变化,这些变化最初来自于复选框。
谢谢。
我不太明白你的问题。如果您想知道值是由用户还是由绑定更改的:
RoutedPropertyChangedEventArgs。源将始终是滑块。所以你得自己做了。
假设你正在绑定Value(只是添加一个布尔值):
private bool valueChangedByUser = false;
private double value = 5;
public double Value
{
get
{
return value;
}
set
{
valueChangedByUser = true;
this.value = value;
OnPropertyChanged("Value");
}
}
当你在代码中更改值时,只需将valueChangedByUser设置为false。
private void ValueChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs<double> e)
{
if (valueChangedByUser)
{
/* Value was changed by user */
}
else
{
/* Value was not changed by user */
}
}