2012-05-09 23 views
0

DataGridでアイテムの監視可能なコレクションにバインドされたusercontrolと2つのボタン:変更を保存し、変更を破棄します。DataGridが編集モードになっているときにボタンを無効にする

私の問題は、ユーザーがデータグリッドを編集しているときに、ボタンはクリック可能なままですが実行されないということです。

DataGridが編集モードのときにボタンを無効にする方法はありますか?

ノー成功を収めて、このコードを試してみました:

<Button Content="SaveChanges" Command="{Binding Path=CmdSaveChanges}" 
       IsEnabled="{Binding ElementName=MyDataGrid, Path=IsEditing, Converter={StaticResource InverseBooleanConverter}}" /> 
+0

なぜ 'IsEnabled'プロパティに' InverseBooleanToVisibilityConverter'を使用しますか? 'IsEnabled'は' bool'ですが、 'Visibility'は' enum'です。 VS出力ウィンドウにバインディングエラーメッセージが表示されますか? – Clemens

+0

また、DataGridには 'IsEditing'プロパティもありません。 – Clemens

答えて

1

あなたはおそらく、データグリッドであるMyDataGrid名前付き要素のIsEditingプロパティにバインドされています。ただし、DataGridにはそのようなプロパティはありません。

DataGridCellにはIsEditingというプロパティがありますが、現在編集中のセルを簡単に取得する方法はありません。 DataGrid.CurrentCellはDataGridCellを提供しませんが、DataGridCellInfoのみを提供します。

おそらく、DataGridのBeginningEditCellEditEndingイベントにハンドラを追加する方がよいでしょう。

+0

ありがとう、それは働いた。しかし、私は、MVVMのパターンに従っているので、コードの背後には何の必要もないソリューションを期待していました。 –

関連する問題