【发布时间】:2013-02-06 11:06:26
【问题描述】:
我有一个绑定到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>
【问题讨论】: