В платформе Windows Universal Apps 8.1, ориентированной на Windows Store 8.1 и Windows Phone 8.1 Мне нужно скрыть текстовый блок, в котором говорится: «Список пуст», когда привязка коллекции к ListView
есть некоторые элементы в нем, и мне нужно показать этот блок текста всякий раз, когда коллекция пуста.Как показать и скрыть текстовый блок в универсальных приложениях Windows 8.1
Пожалуйста, предложите решение для этого.
До сих пор я пробовал это, но он не работает, когда в коллекции есть элементы TasksEmptyMsg все еще показывает, что «Список пуст».
<Page
x:Class="ToDoer.Pages.Task"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ToDoer.Pages"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ListView x:Name="Tasks"
ItemsSource="{Binding Tasks}"
SelectedItem="{Binding SelectedTask,Mode=TwoWay}"
ItemTemplate="{StaticResource TasksItemTemplate}"
Padding="24,24">
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="SelectionChanged">
<core:InvokeCommandAction Command="{Binding TaskSelectionChanged}"/>
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</ListView>
<TextBlock x:Name="TasksEmptyMsg"
Text="The list is empty"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Visibility="Collapsed"
Style="{StaticResource GroupHeaderTextBlockStyle}">
<interactivity:Interaction.Behaviors>
<core:DataTriggerBehavior Binding="{Binding ElementName=Tasks,Path=Items.Count}"
Value="0">
<core:ChangePropertyAction TargetObject="{Binding ElementName=TasksEmptyMsg}"
PropertyName="Visibility"
Value="Visible"/>
</core:DataTriggerBehavior>
</interactivity:Interaction.Behaviors>
</TextBlock>
<!--Uncomment to see an alignment grid to help ensure your controls are
aligned on common boundaries. The image has a top margin of -32px to
account for the System Tray. Set this to 0 (or remove the margin altogether)
if the System Tray is hidden.
Before shipping remove this XAML and the image itself.-->
<!--<Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480" Margin="0,-32,0,0" Grid.Row="0" IsHitTestVisible="False" />-->
</Grid>
<Page.BottomAppBar>
<CommandBar>
<AppBarButton Icon="Add"
Label="add todo"
Command="{Binding AddTask}"/>
</CommandBar>
</Page.BottomAppBar>
</Page>
Прекрасно работает, когда предметов нет в коллекции.
Издание: Шоу «Список пуст», даже если это не так.
Там нет сеттеры, StateTriggers свойства на VisualState в окнах приложений Универсальные, я получаю ошибку XAML , похоже, решение, которое вы отправили, для универсальной платформы Windows, и я использую универсальные приложения для Windows. –
@AbdulMateenMohammed Да, я думал, что они тоже в Win-RT, это не сложно изменить, дайте мне минутку. – Romasz
@AbdulMateenMohammed Версия с конвертерами, работает в WinRT. – Romasz