这是一个 WPF 应用程序。
背景:
我基本上有一个向导应用程序。通过提供 ViewModel 列表来初始化向导。这些 ViewModel 将基于我的 XAML 中的一些 DataTemplate 创建适当的视图。
在向导中单击下一个或上一个时,将设置适当的 ViewModel,并根据 DataTemplate 加载视图。
这工作正常。
问题:
当我处于暂时状态时......意味着正在加载新的 viewModel,看起来有一小段时间仍然在引用前一个 VIEW。因此,我收到一堆 BindingExpression 错误,它说它找不到一堆实际存在于 PREVIOUS viewModel 上的绑定。
摘要:我正在加载一个基于 DataTemplate 的新视图。最初加载该视图时,它似乎与实际的 viewModel 不同步。因此,我得到了一堆绑定表达式错误。
两个问题:
- 关于如何解决这个问题的任何想法?
出现这些 BindingExpression 错误有什么危险吗?
<wiz:WizardContent.Resources> <!--DataTemplates for defining views for this Wizard--> <DataTemplate DataType="{x:Type viewModel:Step1ViewModel}"> <view:Step1 DataContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}, Path=DataContext.CurrentPageVM}"/> </DataTemplate> <DataTemplate DataType="{x:Type viewModel:Step2ViewModel}"> <view:Step2 DataContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}, Path=DataContext.CurrentPageVM}"/> </DataTemplate> <DataTemplate DataType="{x:Type viewModel:Step3ViewModel}"> <view:Step3 DataContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}, Path=DataContext.CurrentPageVM}"/> </DataTemplate> </wiz:WizardContent.Resources> <ContentControl Content="{Binding Path=CurrentPageVM}"/>