我在主UserControl
中放置了两个User Control
。
只有其中一个应该在主要位置上。
当您更改ViewModel
中的某些属性时,我会像这样更改它们:
<UserControl>
<ContentControl>
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Setter Property="Content">
<Setter.Value>
<local:UserControl1/>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsTwo}" Value="True">
<Setter Property="Content">
<Setter.Value>
<local:UserControl2/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</UserControl>
当我将属性更改为
False
时,它可以毫无问题地转到UserControl1
,但当我将其更改为True
时,显示会出现问题,只有当我在屏幕之间移动时才适合,作为一个临时解决方案,我创建了每次UserControl从1 到2更改时运行的事件。当该事件运行时,我删除主UserControl
并重新创建。
但我的问题是,为什么切换到一时我不需要重新创建,而切换到二时可能需要呢?
请勿提供任何解决方法(我已经自己做过了),我想解释为什么会发生这种情况,这才是我感兴趣的。
UserControl1
)上,我也无法再访问它了(单击用户控件中的按钮不会有任何反应,无论是第一个还是第二个)。 - Hodaya Shalom