繁体   English   中英

如何使用布尔值作为触发器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM