[英]wpf hide an element based on children count of another element in xaml
使用纯XAML ,如果list
或stackpanel
具有元素,我想隐藏一个元素,例如textblock
或image
。
例如,请参见以下代码
<Label x:Name="LabelTobeHidden"
Content="No one has joined"
Visibility="Visible"
/>
<StackPanel x:Name="Players" Orientation="Vertical"/>
我可以通过CS来做到这一点,但是我想知道一种仅在XAML中做到这一点的方法,以尽最大努力确保CS仅具有应用程序逻辑。
编辑 :
我正在以编程方式将元素添加到堆栈面板。
您可以DataTrigger
使用Style
的DataTrigger
。
这是我们要注意的StackPanel
:
<StackPanel x:Name="StackPanelToWatch" Orientation="Horizontal">
<Rectangle Width="50" Height="50" Fill="Red"/>
</StackPanel>
这是要隐藏的Label
:
<Label Content="text">
<Label.Style>
<Style TargetType="Label">
<Style.Triggers>
<DataTrigger Binding="{Binding Children.Count, ElementName=StackPanelToWatch}" Value="0">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.