【问题标题】:Auto refresh ItemTemplateSelector自动刷新 ItemTemplateSelector
【发布时间】:2012-07-04 18:18:00
【问题描述】:

我有ItemsControl 和多个DataTemplate 并使用ItemTemplateSelectorItemsSource 的每个项目选择适当的DataTemplate。我想将 ItemTemplateSelector 绑定到项目的 TemplateType 依赖属性。并且每次 TemplateType 属性更改时,DataTemplate 都会自动更改。我该怎么办。

【问题讨论】:

    标签: wpf itemscontrol itemtemplateselector


    【解决方案1】:

    我搜索自己的问题。并找到下面的代码来刷新ItemTemplateSelector

    DataTemplateSelector DataTemplateSelector = plan.ItemTemplateSelector;
    plan.ItemTemplateSelector = null;
    plan.ItemTemplateSelector = DataTemplateSelector;
    

    【讨论】:

      【解决方案2】:

      如果您想更新数据模板,我会在您的情况下寻求不同的解决方案。 我会为您的 ItemsControl 的 ItemTemplate 创建一个绑定。该绑定会分配一个转换器,其中包含当前 ItemTemplateSelector 的逻辑。绑定的来源是您的 TemplateType 属性。

      ItemTemplateSelector 仅用于一次性评估。

      【讨论】:

      • ItemTemplate 是 ItemsControl 的一个属性,我无法将 Item 绑定到它。
      • 你的意思是你不能绑定它?
      • 当我使用ItemTemplate="{Binding Converter={StaticResource myconv}}" 时,在转换器函数中获取空值。我希望在转换器功能中获得我的项目。
      • 当我使用上述命令时,我的转换器功能只运行一次。但我想为ItemsSourceItems 中的每个项目选择模板。
      • ok 然后创建一个仅包含 ContentControl 的数据模板,并绑定到该 ContentControl 的 Template 属性。然后它将按项目进行评估。
      猜你喜欢
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 2020-09-29
      相关资源
      最近更新 更多