LoginSignup
1
2

More than 5 years have passed since last update.

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

Posted at

この記事は、簡単な情報共有です。
WPFのDataGridで、行の削除を禁止していたつもりが、キーボードでDeleteキーを押したら削除できてしまった時の備忘録。

開発環境

Visual Studio Community 2017
WPFアプリ(.NET Framework) のプロジェクト
Windows10 Home 64bit

はじめの状況

image.png
DataGridのプロパティでは、[CanUserAddRows]と[CanUserDeleteRows]のチェックボックスは入っていません。
xamlをみると、CanUserAddRowsとCanUserDeleteRowsを指定していません。
当然、デフォルトはCanではない(つまり、追加も削除もできない)と思ってしまいました。

Deleteキーで行が消えた!?

image.pngimage.png
行を指定してDeleteキーを押したら、行が消えてしまう!
しかも、なんか、データ2行しかないのに、データ追加用の行がある。

プロパティを設定してみる

↓ はじめの状況に対して、プロパティのCanUserDeleteRowsにチェックいれても、XAMLのコードに変化がないので、違和感を感じる。
image.png

↓ チェックを外してみると、XAMLのコードに変化が出た。
image.png

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

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

結論

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

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

補足

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

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2