XAML / C# Скрытие TextBlock, если связанное значение пусто - PullRequest
0 голосов
/ 23 апреля 2020

в моем приложении WPF у меня есть просмотр списка, который появляется только в том случае, если связанный элемент имеет значения, это работает так

<ListView Grid.Row="1" Grid.Column="1" Margin="0,5,0,20" BorderThickness="0"
                  ItemContainerStyle="{StaticResource SelectionlessListViewItemStyle}" 
                  ItemsSource="{Binding MissingAssets}">
            <ListView.Style>
                <Style TargetType="ListView">
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="False">
                            <Setter Property="Visibility" Value="Collapsed"></Setter>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ListView.Style>

Так что это будет отображать только просмотр списка, если MissingAssets имеет какие-либо значения и работает нормально выше, я хотел, чтобы текстовый блок в качестве заголовка просто сказал «Следующие ресурсы не могут быть найдены», и я хочу скрыть этот текст, конечно, если этот список также скрыт, я попытался реализовать его следующим образом

    <TextBlock Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" FontWeight="Bold" Text="The following assets could not be found">
        <TextBlock.Style>
            <Style TargetType="{x:Type TextBlock}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding MissingAssets}" Value="">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>

Но по какой-то причине он не будет скрыт, даже если MissingAssets пуст, я попытался использовать несколько разных вещей в Value = "", но ничто не заставляет его работать. Есть свойство или что-то, что я забыл установить?

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Найден обходной путь, я создал новое строковое свойство в своем коде C#, которое остается пустым, если не найдено пропущенных подтверждений, если они найдены, я заполняю строку и связываю эту строку с меткой в ​​моем XAML, поэтому, если строка пуста, тогда на интерфейсе пользователя не будет видимой метки

0 голосов
/ 23 апреля 2020

У вас есть много вариантов здесь. Самое простое - привязать TextBlock.Visibility к ListView.Visibilty:

<StackPanel>
  <TextBlock Visibility="{Binding Elementname="MissingAssetsListView", Path="Visbibility" />
  <ListView x:Name="MissingAssetsListView" />
</StackPanel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...