13

MVVM パターンを使用した WPF アプリケーションがあります。私の見解の 1 つで、ビューにバインドする必要がありObservableCollectionます。そのビューでは、私は1つとListBox1つのDataGrid両方を同じものにバインドしてObservableCollectionいますが、イベント、スタイルなどの異なることを行っています..

一度に表示する必要があるのはこれらのコントロールのうちの 1 つだけです。私が行ったことは、2 つのユーザー コントロール (1 つは 用DataGrid、もう 1 つは 用) を作成したことですListBoxそして、メインビュー(このブログContentControlに似たもの)に配置することでそれらを切り替えました。デフォルトのビューはで、ボタンをクリックすると他のビューが表示されます(つまり)。これまでは正常に動作しています。DataGridListBox

データ グリッド列は、次のリンクで説明されているソリューションを使用して動的に生成されることに注意してください。したがって、ビューに戻ると、ステートメントDataGridでデータグリッドに列を追加しているときにエラーがスローされますforeach(前のリンクの回答を参照してください)

「ヘッダー 'Ord' を持つ DataGridColumn は、 の Columns コレクションに既に存在しDataGridます。DataGrid は列を共有できず、重複する列インスタンスを含めることはできません。」

しかし、DataGridそのCountプロパティに列を追加する前はゼロ(dataGrid.Columns.Count())であると確信しています。DataGridでは、ヘッダーのプロパティはどのように保持されるのでしょうか? ヘッダー値をクリアする方法はありますか?

提案してください...

4

5 に答える 5

0

インスタンスを WPF のコントロールまたは要素に追加するときは、追加されたコントロールの親を常に消去する必要があります。これは、子のコレクションにコントロールを追加すると、親コントロールが親として新しい子に追加されるためです。メッセージはあなたに言っています

于 2013-09-22T07:47:51.143 に答える