[英]How do I use a boolean Value as Trigger
我需要一个VisualStateTrigger,如果ListView.SelectedIndex> -1,它会作出反应
我的XAML看起来像这样:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
EntranceNavigationTransitionInfo.IsTargetElement="True">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="wideView">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="960"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="ListColumn.Width" Value="420"/>
<Setter Target="DetailColumn.Width" Value="*"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="narrowDetailView">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="ListColumn.Width" Value="0"/>
<Setter Target="DetailColumn.Width" Value="*"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="narrowListView">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="ListColumn.Width" Value="*"/>
<Setter Target="DetailColumn.Width" Value="0"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="ListColumn" Width="0"/>
<ColumnDefinition x:Name="DetailColumn" Width="*"/>
</Grid.ColumnDefinitions>
<ListView x:Name="SelectionList"
Grid.Column="0"/>
<ListView x:Name="DetailsList"
Grid.Column="1"/>
</Grid>
当SelectionList SelectedIndex == -1时,应选择narrowListView-Trigger,否则,narrowDetailsView-Trigger是所需的。
这只能在XAML中实现(如果是这样,最有效的方法是什么),还是需要在代码隐藏中解决这个问题。
WindowsStateTriggers库是你的朋友。
<VisualState>
<VisualState.StateTriggers>
<triggers:CompareStateTrigger Value="{x:Bind someListView.SelectedIndex, Mode=OneWay}" CompareTo="-1" Comparison="GreaterThan" />
</VisualState.StateTriggers>
<VisualState.Setters>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.