wpf скрыть элемент на основе количества детей другого элемента в xaml - PullRequest
0 голосов
/ 26 сентября 2018

Используя чисто XAML , я хочу скрыть элемент, скажем textblock или image, если list или stackpanel имеют элементы.

ДляНапример, см. следующий код

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

Я могу сделать это с помощью cs, но я хочу узнать, как сделать это исключительно в XAML, чтобы приложить все усилия, чтобы гарантировать, что cs имеет только логику приложения.

Редактировать :

Я добавляю элементы в панель стека программно.

1 Ответ

0 голосов
/ 26 сентября 2018

Вы можете использовать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...