wpf根据xaml中另一个元素的子项计数隐藏元素

时间:2018-09-26 13:21:59

标签: c# wpf windows xaml

仅使用 XAML ,我想隐藏一个元素,例如textblockimage具有liststackpanel元素。

例如,请参见以下代码

<Label x:Name="LabelTobeHidden" 
       Content="No one has joined" 
       Visibility="Visible"
       />
<StackPanel x:Name="Players" Orientation="Vertical"/>

我可以使用CS来做到这一点,但是我想知道一种仅在XAML中做到这一点的方法,以尽最大努力确保CS仅具有应用程序逻辑。

修改

我正在以编程方式将元素添加到堆栈面板中。

1 个答案:

答案 0 :(得分:1)

您可以在DataTrigger中使用Style

这是我们的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>