小编Dim*_*ima的帖子

切换到相同数据类型的对象后,DataTemplate 不刷新

我有以下内容ControlTemplate

<ContentControl Content="{Binding ContentViewModel}">
   <ContentControl.Resources>
      <DataTemplate DataType="{x:Type viewModel:FilledContentViewModel}">
         <usercontrols:FilledMainWindow x:Name="MainContent" />
      </DataTemplate>
      <DataTemplate DataType="{x:Type viewModel:EmptyContentViewModel}">
         <!-- todo: Something like a StartPage here -->
      </DataTemplate>
   </ContentControl.Resources>
</ContentControl>
Run Code Online (Sandbox Code Playgroud)

这非常有效,直到视图模型尝试将ContentViewModel属性从 1更改FilledContentViewModel为新的FilledContentViewModel,然后 的内容ContentControl不会刷新。如果从EmptyContentViewModelFilledContentViewModel或相反的方式切换,它就会起作用。

当然,仅更新现有的所有内容FilledContentViewModel也是一种解决方案。但我认为它可能会很快变得混乱,而只需使用ViewModel正确的上下文创建一个新的并切换它会更优雅。

有谁知道有什么方法可以让内容刷新DataTemplate吗?

c# wpf xaml datatemplate contentcontrol

6
推荐指数
1
解决办法
957
查看次数

标签 统计

c# ×1

contentcontrol ×1

datatemplate ×1

wpf ×1

xaml ×1