0

いくつかのテキスト列とチェックボックス付きのテンプレート列を持つ DataGrid があります。ユーザーがその行のどこかをクリックしたときに、このチェックボックスを切り替える必要があります。それを行う最良の方法は何ですか?

現在、選択したアイテムの変更とセルマウスの左ボタンクリックイベントでチェックボックスを切り替えます。しかし、これには2つの問題があります。

最初の問題は、DataGrid がデータバインドされている場合です。最初の行が選択されます。しかし、セルをクリックすると、不明な理由で DataRowCell.MouseLeftButtonDown イベントが発生しません。したがって、チェックボックスは切り替えられません。考えられる解決策は、データ バインド後に最初の行を選択解除することです。

2 番目の問題は、ユーザーが別の行のチェックボックスを直接クリックすると、チェックボックスが 2 回切り替えられることです。これにより、チェックボックスが 2 回切り替えられます。これは、チェックされた値が変更されないことを意味します。

では、要件を実装する最良の方法は何ですか?

4

2 に答える 2

0

チェックボックスのチェックされたプロパティを行isselectedプロパティにバインドしようとしましたか?チェックされた値がデフォルトで常にオフになっているかどうかは、クリックしない限り指定していません。そうでない場合は、カスタムIValueConverterを使用して値を切り替えることができます。

于 2012-05-24T09:11:38.413 に答える
0

CheckBox.IsEnabled = falseに設定すると、ユーザーがチェックボックスを切り替えることができなくなります。DataGridを、フォーカスされていない最初の行を読み取り専用に設定します。

于 2012-05-24T10:20:20.620 に答える