2017-04-13 146 views
-1

WPFの初心者で、これを再現する方法が間違っています。グリッド行を編集し、グリッドレコードを保存せずに次の操作を行った後に警告メッセージを表示します。 MVVMでイベントを作成する方法は?WPFでcellEditEndingまたは現在のセル変更イベントを使用するには?

重大度コード説明プロジェクトファイルの行の抑制状態 エラーCS1061「ファイル」は「ファイル」は見つけることができるタイプの最初の引数を受け入れる「cellEditEnding」と拡張子なしのメソッド「cellEditEnding」の定義が含まれていません(あなたが不足しています?ディレクティブまたはアセンブリ参照を使用して)

<DataGrid x:Name="DataGrid" utils:DataGridTextSearch.SearchValue="{Binding ElementName=txtText, Path=Text, UpdateSourceTrigger=PropertyChanged}" 
        CellEditEnding="dataGrid_CellEditEnding" ItemsSource="{Binding Path=CollectionView}" AutoGenerateColumns="False" Margin="5" SelectionMode="Single" RowStyle="{StaticResource DefaultRowStyle}" 
        SelectedItem="{Binding Path=SelectedVoice, Mode=TwoWay}" CanUserSortColumns="False" IsSynchronizedWithCurrentItem="True" 
        CanUserAddRows="False" Tag="{Binding Path=HasError,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
        CanUserResizeRows="True" > 

private void dataGrid_CellEditEnding(object sender, 
             DataGridCellEditEndingEventArgs e) 
    { 
     DataRowView rowView = e.Row.Item as DataRowView; 
     rowBeingEdited = rowView; 
    } 
+0

どのくらいの期間は、プログラミングをやっていますか? xamlの 'cellEditEnding'を' dataGrid_CellEditEnding'に置き換えてください。 – AnjumSKhan

答えて

0

まあ、私は以下のようにそれを解決した:

をXAML

<DataGrid x:Name="DataGrid" utils:DataGridTextSearch.SearchValue="{Binding ElementName=txtText, Path=Text, UpdateSourceTrigger=PropertyChanged}" 
      ItemsSource="{Binding Path=CollectionView}" AutoGenerateColumns="False" Margin="5" SelectionMode="Single" RowStyle="{StaticResource DefaultRowStyle}" 
       SelectedItem="{Binding Path=SelectedVoice, Mode=TwoWay}" CanUserSortColumns="False" IsSynchronizedWithCurrentItem="True" 
       CanUserAddRows="False" Tag="{Binding Path=HasError,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
       CanUserResizeRows="True" > 

     <i:Interaction.Triggers> 
       <i:EventTrigger EventName="CellEditEnding"> 
        <i:InvokeCommandAction Command="{Binding CellEditCommand}"/> 
       </i:EventTrigger> 
      </i:Interaction.Triggers> 
    </DataGrid> 
ViewModel.csで

private RelayCommand cellEditingCommand; 
    public ICommand CellEditCommand 
    { 
     get 
     { 
      if (cellEditingCommand == null) 
      { 
       cellEditingCommand = new RelayCommand(CellEdit, CanCellEdit); 
      } 
      return cellEditingCommand; 
     } 
    } 

    private bool CanCellEdit(object parameter) 
    { 
     return true; 
    } 

    private void CellEdit(object parameter) 
    { 
     Pool.isEdit = true; 
    } 
関連する問題