通知DataTemplateSelector有关更改

时间:2009-08-21 23:03:17

标签: wpf

我使用DataTemplateSelector进行ListView列标题模板选择。 ListView本身在DataTemplate中定义,并有几个选项卡。所以,在实践中,我有相同的DataTemplate(所以ListView也适用于)几个TabItems。这意味着如果我在ListView列{AColumn}上选择选项卡{A}并设置XDataTemplate,那么在{B}的ListView(始终是同一个)列上切换选项卡,让我们说到选项卡{B} {AColumn},我们将看到相同的XDataTemplate,因为它们共享相同的UI数据。所以我创建了数据层,其中我保存了关于{Tab}< - >的关系信息。 {ListView:Column}< - > {} HeaderContent。这实际上是读取DatatemplateSelector以便在用户屏幕上正确更新UI。 如何根据请求通知DataTemplateSelector更新当前视图?

谢谢。

1 个答案:

答案 0 :(得分:3)

我找到了解决这个问题的方法,并没有像我想象的那么困难。该模板将应用于ListView列的标题。这足以改变标头的值,以便生成WPF的内部事件,该事件将自动在DataTemplateSelector上执行SelectTemplate。

以下是示例代码:

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);
      }
 }

就是这样。 希望这将有助于将来的某个人。