我在WPF mvc应用程序中使用DateTimePicker。它看起来像这样:
<Label Content="Date: "/>
<xctk:DateTimePicker
Value="{Binding Example.FirstDate,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource validDateConverter}}"
Format="Custom"
FormatString="{}dd/MM/yyyy HH:mm">
</xctk:DateTimePicker>
我现在想做的是了解日期的变化。如果用户改变了日期,我就能在ViewModel中做一些事情。它必须在ViewModel中,而不是在代码后面。(我这样说是因为Event不是一个选项)。
我的想法是使用命令或触发器,但它不允许我(它不是一个选项)。有人能帮我一下吗?提前谢谢你。
这是一个使用CheckBox的例子,但对于DateTimePicker控件来说也是一样的:您需要添加如下引用:
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
然后你可以这样做:
<CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay}"
Content="{Binding Path=Item.Description}">
<b:Interaction.Triggers>
<b:EventTrigger EventName="Checked">
<b:InvokeCommandAction
Command="{Binding DataContext.AddUserPermissionCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}}"
CommandParameter="{Binding Path=Item.Id}" />
</b:EventTrigger>
<b:EventTrigger EventName="Unchecked">
<b:InvokeCommandAction
Command="{Binding DataContext.RemoveUserPermissionCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}}"
CommandParameter="{Binding Path=Item.Id}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</CheckBox>
你可以看到它挂钩到事件"Checked"在本例中,然后调用命令。因此,您可以对需要从
触发命令的任何控件和事件执行相同的操作。