wpf控件-单击按钮可更改wpf中带有触发器的数据网格的可见性



嗨,我正试图找到一些方法,当一个按钮被点击改变其他控件的可见性,像一个DataGrid与触发器在XAML。

按钮只改变DataGrid的可见性,它在代码后面做其他事情,但这是我认为可以在一个触发器的样式中完成的事情。

我试图找到一个解决方案,似乎是可能的,但我不明白如何。

<Button Content="Button!">
    <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
            <BeginStoryboard>
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.Target="{x:Reference dataGrid}"
                                                   Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:0"
                                                Value="{x:Static Visibility.Visible}"/>
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Button.Triggers>
</Button>

{x:Reference dataGrid}引用名称为dataGrid的DataGrid,或者您可以仅使用Storyboard.TargetName。如果要绑定或引用资源,通常会使用Storyboard.Target属性。

只是一个建议,但是,为了更容易理解,有一个复选框启用/禁用DataGrid显示怎么样?我通常是这样做的:

<DockPanel LastChildFill="True">
   <CheckBox DockPanel.Dock="Right" VerticalAlignment="Center" x:Name="DisplayBox"
                      Content="Display grid" Margin="4" IsChecked="False"/>
   <DataGrid Visibility="{Binding ElementName=DisplayBox, Path=IsChecked, Converter={StaticResource BoolToVisibilityConverter}}" />
</DockPanel>

当然,您还必须实现适当的转换器

最新更新