【发布时间】:2013-03-06 12:50:19
【问题描述】:
我有两个User Control's 坐在主要的UserCotrol 中。
其中只有一个应该是主要的。
当您更改 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 并重新创建它。
但我的问题是,为什么当我更改为一个时我不需要重新创建,而当我更改为两个时我可能需要?
不要给我任何解决这个问题的想法(我自己做过),我想解释为什么会这样,这是我感兴趣的。
【问题讨论】:
-
“显示问题”是什么意思?可以给个截图吗?
-
@DanPuzey,我的意图:它没有像应该显示的那样显示在屏幕上,看起来他被以前的用户控制(
UserControl1)卡住了,我也无法访问它了, (点击 UserCotrol 中的按钮不会去任何地方,不是第一个也不是第二个) -
如果最小化和恢复窗口,会显示哪个控件?我想知道您的内容是否由于某种原因发生了变化,但窗口没有重新呈现。
-
@DanPuzey,这听起来很有趣,因为当我从第二个移动到第一个时,它会正确显示,但我会检查它。
-
尝试切换用户控件(首先显示 UserControl2),它在启动时是否正确显示?你的 xaml 对我来说很好用,所以问题很可能出在其他地方。
标签: wpf mvvm binding user-controls