您可以使用 Slider 的 Thumb.DragCompleted 事件来实现在拖动结束时触发事件,然后使用 Command 绑定来将事件与 ViewModel 中的命令绑定在一起。

以下是一个示例代码:

XAML:

<Slider Minimum="0" Maximum="100" Value="{Binding SliderValue}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="DragCompleted">
            <i:InvokeCommandAction Command="{Binding SliderValueChangedCommand}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Slider>

其中,SliderValue 是 ViewModel 中绑定 Slider 的值的属性,SliderValueChangedCommand 是 ViewModel 中处理 Slider 值更改的命令。

ViewModel:

public class MainViewModel : INotifyPropertyChanged
{
    private double _sliderValue;
    public double SliderValue
    {
        get { return _sliderValue; }
        set
        {
            if (_sliderValue != value)
            {
                _sliderValue = value;
                OnPropertyChanged(nameof(SliderValue));
            }
        }
    }

    public ICommand SliderValueChangedCommand { get; }

    public MainViewModel()
    {
        SliderValueChangedCommand = new RelayCommand(OnSliderValueChanged);
    }

    private void OnSliderValueChanged()
    {
        // 处理 Slider 值更改
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

其中,RelayCommand 是一个实现 ICommand 接口的自定义命令,OnSliderValueChanged 方法是处理 Slider 值更改的方法。

希望对您有所帮助!

WPF Slider 拖动结束触发事件并使用 MVVM 绑定

原文地址: https://www.cveoy.top/t/topic/lUWr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录