由于绑定而发生ValueChanged事件

本文关键字:ValueChanged 事件 于绑定 绑定 | 更新日期: 2023-09-27 18:10:49

在我的WPF项目中,我有一个Value="{Binding Path=. . .}" ValueChanged=" . . ."滑块控件

在这个ValueChanged的事件处理程序方法中,我想了解当前事件是由移动滑块的用户发生的还是作为Value="{Binding Path=. . .}"的结果。

我怎么能理解这个?

Updated: The goal:

我有一组复选框,通过选中其中的任何一个,一些东西被添加到数字。用户也可以改变数字滑动条。滑动条和复选框应该反映彼此的变化。

ValueChanged的事件处理方法负责在复选框中设置复选,Value="{Binding Path=. . .}"负责反映数字的变化,这些变化最初来自于复选框。

谢谢。

由于绑定而发生ValueChanged事件

我不太明白你的问题。如果您想知道值是由用户还是由绑定更改的:

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 */
        }
    }