我有基于代码隐藏或视图模型中的布尔条件在xaml中创建或不创建的视图。
我想做类似的事情:
<AlwaysVisibleView />
<IfShowSometimesViewBindingOrVariableOrSomething>
<SometimesView AProperty="something"/>
</IfShowSometimesViewBindingOrVariableOrSomething>
我希望尽可能地避免代码隐藏和其他类似的欺骗,最后理想情况下我不希望实例化视图。
答案 0 :(得分:1)
动态创建视图有时会变得有点棘手。此外,他们往往会搞砸XAML如何渲染事物。
你能绑定&#34;有时可见视图的可见性&#34;到房产?你可以通过布尔到可见性转换器来运行它,只需让后面的代码切换bool即可显示/隐藏。
答案 1 :(得分:1)
您可以使用ContentControl
和Style.Triggers
根据属性更改内容和展示位置(例如:bool ShowMe
):
<ContentControl>
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="Content" Value="{x:Null}"/>
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ShowMe}" Value="True">
<Setter Property="Content">
<Setter.Value>
<SometimesView AProperty="something"/>
</Setter.Value>
</Setter>
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>