2016-12-28 9 views
1

エラーが発生しました: '予想されるシグネチャと一致する' MyType 'タイプのオブジェクトに' LostFocus 'という名前のメソッドが見つかりませんでした。カスタムTextBoxのEventTriggerのCallMethodActionからメソッドを呼び出せません

<DataGridTemplateColumn MinWidth="80" Width="1.25*" Header="6"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <customControlls:NumericTextBox x:Name="cc" 
        Style="{StaticResource NumericTextboxStyle}" 
        Text="{Binding AccountsReceivable.OverdueAtTheEndOfTheReportingPeriod, UpdateSourceTrigger=LostFocus}"> 
       <interactivity:Interaction.Triggers> 
        <interactivity:EventTrigger EventName="LostFocus" SourceName="cc"> 
         <interactions:CallMethodAction TargetObject="{Binding}" MethodName="LostFocus"/> 
        </interactivity:EventTrigger> 
       </interactivity:Interaction.Triggers> 
      </customControlls:NumericTextBox> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

私が呼び出しようとしているViewModelのメソッド。私はまた、同じエラー、メソッドからパラメータを削除しようとしました。

public void LostFocus(object sender, EventArgs e){} 

答えて

0

私はそれを働かせました。 TargetObjectをDataGridのDataContextにバインドする必要があります。

<DataGridTemplateColumn MinWidth="80" Width="1.25*" Header="6"> 
<DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <customControlls:NumericTextBox 
       Style="{StaticResource NumericTextboxStyle}" 
       Text="{Binding AccountsReceivable.OverdueAtTheEndOfTheReportingPeriod, UpdateSourceTrigger=LostFocus}"> 
      <interactivity:Interaction.Triggers> 
       <interactivity:EventTrigger EventName="LostFocus"> 
        <interactions:CallMethodAction MethodName="LostFocus" TargetObject="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext}" /> 
       </interactivity:EventTrigger> 
      </interactivity:Interaction.Triggers> 
     </customControlls:NumericTextBox> 
    </DataTemplate> 
</DataGridTemplateColumn.CellTemplate> 

すべきであり、呼び出されるメソッドシグネチャ:

public void LostFocus(object sender, RoutedEventArgs e){} 
関連する問題