【发布时间】:2022-01-08 11:54:33
【问题描述】:
下面的 XAML 适用于使用 VisualStateManager 和来自 Microsoft.Toolkit.Uwp.UI 包的 IsNullOrEmptyStateTrigger 的 UWP 应用。当没有从 ListView 中选择任何项目时,触发器应该禁用按钮。但是,该按钮始终保持启用状态。
ListView 的SelectedItem 在列表中没有选择任何内容时应该为空(首次运行应用程序时没有选择任何内容)。有什么想法吗?
我的代码大致基于this example。
<Page
x:Class="UwpTriggerDemo.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UwpTriggerDemo"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:triggers="using:Microsoft.Toolkit.Uwp.UI.Triggers"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ListViewStates">
<VisualState x:Name="ListSomethingSelectedState" />
<VisualState x:Name="ListNothingSelectedState">
<VisualState.StateTriggers>
<triggers:IsNullOrEmptyStateTrigger Value="{Binding SelectedItem,
ElementName=myListView, Mode=OneWay}"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="myButton.IsEnabled" Value="False" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<ListView x:Name="myListView">
<TextBlock Text="Item 1" />
<TextBlock Text="Item 2" />
<TextBlock Text="Item 3" />
</ListView>
<Button x:Name="myButton" Content="Click Me" />
</StackPanel>
</Page>
【问题讨论】: