我使用DataTemplateSelector作为ListView列标题模板选择。ListView本身是在DataTemplate中定义的,并且有几个选项卡。因此,在实践中,我有同样的DataTemplate (所以ListView )应用于几个TabItems。这意味着,如果我选择选项卡{A}并在ListView列{AColumn}上设置AColumn,然后切换选项卡,让我们告诉选项卡{B},在{B}的ListView (总是相同的)列{AColumn}上,我们将看到相同的XDataTemplate,因为它们共享相同的UI数据。因此,我创建了数据层,其中保存了有关{Tab} <-> {ListView:Column} <-> {HeaderContent}的关系信息。它实际上读取DatatemplateSelector,以便在用户屏幕上正确更新UI。如何根据请求通知DataTemplateSelector更新当前视图?
谢谢。
发布于 2009-08-23 11:27:35
我找到了解决这个问题的办法,但并不像我想的那么困难。模板应用于ListView列的标题。这足以改变标头的值,以便生成将在SelectTemplate上自动执行DataTemplateSelector的WPF的内部事件。
下面是示例代码:
if (MyListView != null)
{
foreach (GridViewColumn col in (MyListView.View as GridView).Columns)
{
string header = col.Header.ToString();
col.ClearValue(GridViewColumn.HeaderProperty);
col.SetValue(GridViewColumn.HeaderProperty, header);
}
}就这样。希望这能对将来的人有所帮助。
https://stackoverflow.com/questions/1314560
复制相似问题