にバインドされたタブ付きウィジェットがありDictionary<string, DataTable>
ます。タブ名はディクショナリにバインドされKeys
、タブの内容は にバインドされますDataTables
。これはすべて正常にロードされますが、構築後の特定されていない時点で、すべてのテーブルがはるかに大きく複雑なテーブルとして再構築されます。私の問題は、WPF がテーブルを正しく更新するように変更通知を提供する方法です。
それは非常に明白なことのように思えますが、何かが欠けているのか、それとも監視可能なディクショナリ構造または変更通知を伴うカスタマイズされた DataTable ラッパーを本当に使用する必要があるのか 疑問に思っています。
これまでに試した解決策:
を使用し、
ObservableCollection< KeyValuePair<string, DataTable>
エントリを追加または削除します。これは実際には問題なく機能しますが、テーブルを更新する必要があるときにタブが消えて再表示されるという視覚的に魅力のない効果が発生します。コードビハインドを使用して明らかにハッキングできますが、可能であればこれを避けたいと思います。
ここにXAMLがあります
<TabControl ItemsSource="{Binding StringToDataTableDictionary}" >
<TabControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Key}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<igDP:XamDataGrid DataSource="{Binding Path=Value}"
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>