を経由してコンボボックスの列にデータグリッドの列を設定しますコンボボックスを表示するテンプレート。は動的に私は「GridCollection」と呼ばれてきたDataTableにバインドさデータグリッドを持っているデータバインディング
私は、DataTable列( "Caption")のプロパティにバインドされたDataTriggerを追加し、それに応じてコンボボックスの可視性を更新することでこれを達成しようとしました。
私の理解は、この場合のDataContextはDataTableの列です。
私はDataTrigger(「ShowComboBox」)にspeicified値と一致するように、データテーブルの列の「キャプション」プロパティを設定しようとしている:このコード行が実行されていることを確認した後、その
ViewModel.GridCollection.Columns[index].Caption = "ShowComboBox";
Captionプロパティが更新されていますが、これはDataGridに変更を加えません。コンボボックスを表示している列はありません。
バインディングに問題があるか、それが他のものかどうかはわかりません。
ご協力いただきましてありがとうございます。
ありがとうございます。私は、DataGridの残りの部分が正しく更新されているので、DataColumnがINotifyPropertyChangedを実装していると仮定しました。私はDataTableのように思えます。カラム名はファイルから読み込まれ、実行時までコンボボックスのカラムを知る方法はありません。列の名前やインデックスを知らなくても、このバインディングをXAMLに書き込む方法はありますか? –
なぜバインディングを参照していますか?どの部分が動的なのですか?私は私の答えで示唆したように、あなたは動的にCaption列を追加できませんか? – mm8
列ヘッダーは動的です(実際は、テーブル全体がファイルから読み込まれます)。私のコードの "Caption"は、Columnのヘッダー名ではなく、個々のDataColumnのプロパティです。私はDataColumnのプロパティにバインドする必要があります。それは私が言及しているバインディングです。 –