在WPF

时间:2017-05-18 07:05:04

标签: c# wpf telerik

我的RadGridView里面有一个RadDatePicker我希望在该日期的任何更改中触发command

我正试图通过

实现这一目标
<telerik:GridViewColumn Header="Date of Travel" >
    <telerik:GridViewColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=FlightDetails.FltDate, StringFormat=dd-MMM-yyyy}">
            </TextBlock>
        </DataTemplate>
    </telerik:GridViewColumn.CellTemplate>
    <telerik:GridViewColumn.CellEditTemplate>
        <DataTemplate>
            <telerikControls:RadDatePicker SelectedDate="{Binding Path=FlightDetails.FltDate,UpdateSourceTrigger=LostFocus,Mode=TwoWay, StringFormat=dd-MMM-yyyy}" DisplayFormat="Short" Culture="en-AU">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="LostFocus">
                        <i:InvokeCommandAction Command="{Binding DataContext.DateOfFlightCommand, RelativeSource={RelativeSource AncestorType={x:Type baseview:QRUserControl}}}" 
                                               CommandParameter="{Binding}" />
                    </i:EventTrigger>
                </i:Interaction.Triggers>
            </telerikControls:RadDatePicker>
        </DataTemplate>
    </telerik:GridViewColumn.CellEditTemplate>
</telerik:GridViewColumn>

什么都没有被触发。

1 个答案:

答案 0 :(得分:0)

您的绑定可能无效。如果在父窗口的视图模型中定义了DateOfFlightCommand属性,则应将Window指定为AncestorType

<i:InvokeCommandAction Command="{Binding DataContext.DateOfFlightCommand, 
                            RelativeSource={RelativeSource AncestorType={x:Type Window}}}" CommandParameter="{Binding}" />

但是,除非您包含所有相关的代码段,否则当然没有人可以知道您的类和属性是如何相关的。在提出另一个问题之前,您应该先阅读此内容:https://stackoverflow.com/help/mcve