基于条件的 wpf 可见性

问题描述

我想根据特定条件显示 StackPanel。在这个例子中,我使用了 BorderThickness 属性:

<ContentControl x:Name="gridDati" VirtualizingPanel.VirtualizationMode="Recycling" VirtualizingPanel.ScrollUnit="Item" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch">
    <ContentControl.Style>
        <Style TargetType="ContentControl">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Items}" Value="{x:Null}">
                    <Setter Property="BorderThickness" Value="0" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=Items.Count}" Value="0">
                    <Setter Property="BorderThickness" Value="12" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ContentControl.Style>
</ContentControl>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="pnlLoading" Visibility="Visible">
    <Label Content="">
        <Label.Style>
            <Style>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=BorderThickness,ElementName=gridDati,UpdateSourceTrigger=PropertyChanged}" Value="0">
                        <Setter Property="TextBlock.Text" Value="" />
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Path=BorderThickness,UpdateSourceTrigger=PropertyChanged}" Value="12">
                        <Setter Property="TextBlock.Text" Value="STAND BY" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Label.Style>
    </Label>
</StackPanel>

基本上,在后面的代码中,我在 gridDati 上应用模板时,当项目计数器仍然为零时,边框被正确设置为 12。之后它变成零(项目绑定)和这个行为就是我想要的。

所以,我也想在相同的条件下显示一个 StackPanel,所以我使用了一个 DataTrigger,但似乎根本没有被触发。我如何“链接”这两个条件?所以当我在数据网格中有项目时显示一个堆栈面板?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)