问题描述
||
嗨,我试图找到一种方法来单击按钮时更改其他控件的可见性,例如XAML中带有触发器的DataGrid。
该按钮仅将DataGrid的可见性更改为Visible,它在“代码隐藏”中执行其他操作,但是我认为可以使用带触发器的样式来完成此操作。
我试图找到一种解决方案,这似乎是可行的,但我不知道如何做。
提前致谢。
解决方法
<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,或者也可以使用use3ѭ。如果您对资源进行绑定或引用,通常将使用“ 4”属性。
,只是一个建议,但是对于一个更易于理解的事情,有一个启用/禁用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>
当然,您必须实施适当的转换器