この記事は、簡単な情報共有です。
WPFのDataGridで、行の削除を禁止していたつもりが、キーボードでDeleteキーを押したら削除できてしまった時の備忘録。
開発環境
Visual Studio Community 2017
WPFアプリ(.NET Framework) のプロジェクト
Windows10 Home 64bit
はじめの状況
DataGridのプロパティでは、[CanUserAddRows]と[CanUserDeleteRows]のチェックボックスは入っていません。
xamlをみると、CanUserAddRowsとCanUserDeleteRowsを指定していません。
当然、デフォルトはCanではない(つまり、追加も削除もできない)と思ってしまいました。
Deleteキーで行が消えた!?
→
行を指定してDeleteキーを押したら、行が消えてしまう!
しかも、なんか、データ2行しかないのに、データ追加用の行がある。
プロパティを設定してみる
↓ はじめの状況に対して、プロパティのCanUserDeleteRowsにチェックいれても、XAMLのコードに変化がないので、違和感を感じる。
↓ もう一回、チェックを入れてみると、XAMLのコードから、CanUserDeleteRowsの設定コードが消えた!?
はじめの状況では、チェックなし=コードなしだったのに、
チェックを付けたり外したりしたら、チェックあり=コードなしに変わった。
結論
今の自分の開発環境しか確認していないが、
CanUserDeleteRowsとCanUserAddRowsの設定コードがない(=デフォルト値)の時、
プロジェクトの新規作成後とプロジェクトの読み込み後に、プロパティ表示が正しくないようだ。
再現性があるので、思い違いではないと思うのだが、、、。
ググっても出てこないので、、、最近からの不具合? それとも、みんな知っていすぎてWebに書かないからググっても出てこないのか?
補足
CanUserDeleteRows:DataGridに画面上の操作で行の削除ができるかできないかを設定するプロパティ
CanUserAddRows:DataGridに画面上の操作で行の追加ができるかできないかを設定するプロパティ