【问题标题】:UWP Grid with trigger binding带有触发器绑定的 UWP 网格
【发布时间】:2021-07-29 21:57:06
【问题描述】:

我试图在 XAML 中定义一些触发器,但没有成功。我想做的很简单。我的应用中有 3 个 Grids 用于 3 个步骤,就像一个向导。

在 ViewModel 中,我有一个保存当前步骤的属性。如果 Grid 的 step 具有相同的这个属性值,我想显示 Grid。我以为我可以像在 Xamarin 中一样使用 Triggers,但显然它不起作用。

<Grid x:Name="firstStep" Margin="30" ColumnSpacing="15">
    <Grid.Style>
        <Setter Property="Visibility" Value="Collapse" />
        <Style.Triggers>
            <DataTrigger Binding="{Binding Value}" Value="1">
                <Setter Property="Visibility" Value="Visible" />
            </DataTrigger>
        </Style.Triggers>
    </Grid.Style>
</Grid>

我怎样才能实现这样的东西?最佳做法是什么?

【问题讨论】:

    标签: uwp uwp-xaml


    【解决方案1】:

    在 UWP 中,触发器已被弃用,只有一种官方支持的触发器——用于响应式设计的 AdaptiveTrigger。一般来说,推荐的替代品是行为和行动(参见https://www.nuget.org/packages/Microsoft.Xaml.Behaviors.Uwp.Managed/)。此外,社区工具包中还有一些非官方的触发器。

    但在您的情况下,最好只制作一个自定义转换器。创建一个实现 IValueConverter 的类,从参数中获取步长的整数,当值和参数匹配时返回 Visibility.Visible。将该类的对象添加到资源中,并在绑定中使用参数 = stepnumber 指定转换器。

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多