2017-05-18 11 views
0

私はの中にRadDatePickerを持っています。その日付の変更にcommandを発射したいと思います。WPFのRadGridViewの中のRadDatePickerからLostFocusイベントを呼び出す

私は何がトリガされていない

<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> 

を通じてそれを達成しようとしています。

+0

DateOfFlightCommandプロパティはどこに定義されていますか?ビジュアルツリーにはどこにRadGridViewがありますか? – mm8

+0

DateOfFlightCommandはメインビューモデルにあり、RadGridViewはメインビューから呼び出されたusercontrolにあります – Zafar

+0

MainVMはウィンドウのDataContextですか? – mm8

答えて

0

あなたのバインドはおそらく無効です。 DateOfFlightCommandプロパティは親ウィンドウのビューモデルで定義されている場合は、あなたにWindowを指定する必要がありAncestorType

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

しかし、もちろん、誰もあなたのクラスとプロパティを使用する場合を除きどのように関連しているかを知ることになっていないことができますすべての関連するコードスニペットを含めます。 https://stackoverflow.com/help/mcve

+0

はい、実際にメインビューモデルでイベントを処理しようとしましたが、子VMで行う必要があります。 – Zafar

+0

また、役に立つ回答を投票することを忘れないでください:) https://stackoverflow.com/help/privileges/voteup – mm8

関連する問題