我有一个绑定到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>