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に画面上の操作で行の追加ができるかできないかを設定するプロパティ

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


【備忘録】WPFのDataGridのCanUserDeleteRowsとCanUserAddRowsの初期値を疑問に思った件 - Qiita
この記事は、簡単な情報共有です。 WPFのDataGridで、行の削除を禁止していたつもりが、キーボードでDeleteキーを押したら削除できてしまった時の備忘録。 Visual Studio Community 2017 WPFアプリ(.NET Framework) のプロジェクト Windows10 Home 64bit ...
https://qiita.com/azuki8/items/c68c3103bf108c475cdf


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


@azuki8のマイページ - Qiita
UMLは、日本人から見ると「図」 UMLって、言語だって知っていますか? Unified Modeling Language で、ラングエッジ 、つまり言語です。 でも日本人からみると、言語じゃなくて図ですよね。 まあ、どう見たって、図。 これでも、日本人から見... はじめに よく考えると、UMLが特定のプログラミング言語に依存していないことは、 みんなが承知していることだと思います。 でも、UMLの中に出てくる言葉には、特定のプログラミング言語に出てくる言葉と、 同じ言葉が使われていることもあります。
https://qiita.com/azuki8?page=2
株式会社豆蔵では一緒に働く仲間を募集しています
今週のランキング