Datepicker通过命令参数wpf传递参数mvvm

时间:2016-01-29 15:41:58

标签: c# wpf mvvm prism

我有一个使用Prism的WPF MVVM项目,我有Datepicker绑定到viewmodel上的Datetime属性。我想使用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;
    }

1 个答案:

答案 0 :(得分: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>