WPF Slider 拖动结束触发事件并使用 MVVM 绑定
您可以使用 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 值更改的方法。
希望对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/lUWr 著作权归作者所有。请勿转载和采集!