您好我想找到某种方式来单击按钮时更改其他控件的可见性,如带XAML中的触发器的DataGrid。按钮点击更改WPG中的触发器DataGrid的可见性
该按钮仅将DataGrid的可见性更改为Visible,它在Code Behind中执行其他操作,但这是我认为可以在具有触发器的Style中完成的操作。
我试图找到一个解决方案,它似乎有可能做但我无法理解如何。
在此先感谢。
您好我想找到某种方式来单击按钮时更改其他控件的可见性,如带XAML中的触发器的DataGrid。按钮点击更改WPG中的触发器DataGrid的可见性
该按钮仅将DataGrid的可见性更改为Visible,它在Code Behind中执行其他操作,但这是我认为可以在具有触发器的Style中完成的操作。
我试图找到一个解决方案,它似乎有可能做但我无法理解如何。
在此先感谢。
<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>
,当然还有,你必须执行相应的转换器
没有必要实现,这样的转换器已经存在于框架中,它已经被称为'BooleanToVisibilityConverter'。 – 2011-04-14 12:55:13
谢谢,我甚至不知道,并继续使用我很久以前做过的转换器。我会考虑现在删除它! – Damascus 2011-04-14 12:58:32
同样在这里,几乎是我写的第一个转换器,不记得我何时发现了现有的转换器。 – 2011-04-14 13:05:19
你逃脱我..我正要张贴相同.. :) – 2011-04-14 13:11:49
但在不要在标记扩展中添加命名空间'pc'。我会用这个 - –
2011-04-14 13:13:40
对我也有很大的帮助,快点!关于能见度的事情很有趣,不知道它已经可以这样访问了。 – 2011-04-14 13:14:33