日期选取器通过命令参数 wpf mvvm 传递参数
本文关键字:参数 wpf mvvm 命令 选取 日期 | 更新日期: 2023-09-27 18:32:36
我有一个使用 Prism
的 WPF MVVM 项目,我有一个绑定到视图模型上的 Datetime
属性的Datepicker
。我想使用 SelectedDateChanged
事件来获取更改的值(没有代码)。我知道我也得到了Datepicker
绑定的属性的值变化,但我想以另一种方式尝试。到目前为止,我已经在 xaml 中将日期选择器放在一起
<DatePicker Name="dpName" Grid.Row="1" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" Width="200" SelectedDate="{Binding Class.Date}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedDateChanged">
<i:InvokeCommandAction Command="{Binding ath=TestMeCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DatePicker>
TestMeCommand
的 C# 代码:
public DelegateCommand TestMeCommand { get; set; }
在 CTOR 中:
TestDateCommand = new DelegateCommand<object>(TestPateparam);
该函数:
private void TestDate()
{
int test = 0;
}
我的问题是如何将所选日期作为参数传递给函数。到目前为止,我已经尝试将InvokeCommandAction
替换为
<i:InvokeCommandAction Command="{Binding Path=TestDateCommand}" CommandParameter="Binding ElementName=DPLoanDetailsAsOfDate, Path=SelectedDate}" />
和 C# 函数
public DelegateCommand<object> TestDateCommand { get; set; }
TestDateCommand = new DelegateCommand<object>(TestPateparam);
private void TestPateparam(object dt)
{
int test = 0;
}
如果您使用的是 Prism 6.1.1-pre2,您可以使用 Prism 的 InvokeCommandAction 轻松完成此操作:
<DatePicker Grid.Row="1" Margin="5" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedDateChanged">
<prism:InvokeCommandAction Command="{Binding SelectedCommand}" TriggerParameterPath="AddedItems" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DatePicker>