管理 DateTimerPicker 控件 WPF 中的更改
Manage changes in a DateTimerPicker control WPF
我在 WPF MVVC 应用程序中使用 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 中,而不是在代码隐藏中。
(我这么说是因为事件不是一个选项)。
我的想法是使用命令或触发器,但它不允许我(这不是一个选项)。
有人可以帮我吗?非常感谢您。
这是一个使用 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”,然后调用一个命令。因此,您可以对需要从中触发命令的任何控件和事件执行相同的操作。
我在 WPF MVVC 应用程序中使用 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 中,而不是在代码隐藏中。 (我这么说是因为事件不是一个选项)。
我的想法是使用命令或触发器,但它不允许我(这不是一个选项)。 有人可以帮我吗?非常感谢您。
这是一个使用 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”,然后调用一个命令。因此,您可以对需要从中触发命令的任何控件和事件执行相同的操作。