1
/
5

【備忘録】WPFのDataGridのCanUserDeleteRowsとCanUserAddRowsの初期値を疑問に思った件

この記事は、簡単な情報共有です。
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のコードに変化が出た。


↓ もう一回、チェックを入れてみると、XAMLのコードから、CanUserDeleteRowsの設定コードが消えた!?


はじめの状況では、チェックなし=コードなしだったのに、
チェックを付けたり外したりしたら、チェックあり=コードなしに変わった。

結論

今の自分の開発環境しか確認していないが、
CanUserDeleteRowsとCanUserAddRowsの設定コードがない(=デフォルト値)の時、
プロジェクトの新規作成後とプロジェクトの読み込み後に、プロパティ表示が正しくないようだ。

再現性があるので、思い違いではないと思うのだが、、、。
ググっても出てこないので、、、最近からの不具合? それとも、みんな知っていすぎてWebに書かないからググっても出てこないのか?

補足

CanUserDeleteRows:DataGridに画面上の操作で行の削除ができるかできないかを設定するプロパティ
CanUserAddRows:DataGridに画面上の操作で行の追加ができるかできないかを設定するプロパティ

※転載元の情報は上記執筆時点の情報です。
 上記執筆後に転載元の情報が修正されることがあります。



執筆者のページはこちらから


株式会社豆蔵では一緒に働く仲間を募集しています
今週のランキング
このストーリーが気になったら、直接話を聞きに行こう