单击按钮可更改 WPF 中带有触发器的 DataGrid 的可见性

发布于 2024-11-02 00:30:37 字数 182 浏览 1 评论 0原文

您好,我正在尝试找到某种方法,当单击按钮时会更改其他控件的可见性,例如 XAML 中带有触发器的 DataGrid。

该按钮仅将 DataGrid 的可见性更改为可见,它在代码隐藏中执行其他操作,但我认为这可以在带有触发器的样式中完成。

我试图找到解决方案,似乎可以做到,但我不明白如何做。

提前致谢。

Hi i am trying to find some way to when a button is clicked changes the visibility of other control, like a DataGrid with a Trigger in XAML.

The button only changes the visibility of the DataGrid to Visible, it does other things in Code Behind, but this is something that i think that can be done in a Style with a Trigger.

I tried to find a solution and it seems to be possible to do but i can't understand how.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

说好的呢 2024-11-09 00:30:37
<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 属性。

<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} references a DataGrid with the name dataGrid, alternatively you could just use Storyboard.TargetName. You would normally use the Storyboard.Target property if you do binding or references to resources.

滥情哥ㄟ 2024-11-09 00:30:37

只是一个建议,但是为了更容易理解,有一个启用/禁用 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>

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

Just a suggestion, but how about, for something more understandable, having a Checkbox enabling/disabling the DataGrid display? This is what I usually do:

<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>

And of course, you'll have to implement the appropriate converter

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文