我在XAML中有一个滑块,我想将“Thumb.DragCompleted”事件处理程序绑定到我在ViewModel中定义的命令。代码如下:
<Slider Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Maximum="100" TickFrequency="100"
Value="{Binding ExposureTime}" Thumb.DragCompleted="SliderDragCompleted">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Thumb.DragCompleted">
<i:InvokeCommandAction x:Name="SliderCompleted" Command="{Binding SetExposureCommand}"></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</Slider>
下面是viewModel中的函数:
public ICommand SetExposureCommand => _setExposure ?? (_setExposure = new CommonCore.GuiControls.Commands.RelayCommand(SetExposure));
public void SexExposure()
{
vimbaCamera.SetExposure(ExposureTime);
}
但该函数从未被调用。任何帮助将不胜感激。
1条答案
按热度按时间7eumitmz1#
Thumb.DragCompleted
是一个附加事件,您正在使用的EventTrigger
不支持附加事件。你要么实现自己的custom event trigger,要么直接从
SliderDragCompleted
事件处理程序调用命令:这并没有破坏MVVM模式,因为与在XAML标记中使用交互触发器相比,您是从完全相同的视图调用完全相同的命令。MVVM不是关于从视图中消除代码-它是关于关注点的分离。