あなたはDataTriggerをあなたのボタンに名前を付け、使用することができます。
<Window
...
>
<Window.Resources>
<Style TargetType="{x:Type Grid}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused, ElementName=butt}" Value="True">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel>
<Button x:Name="butt">Hide</Button>
<Grid>
<Label Background="Yellow">Inside Grid</Label>
</Grid>
<Button>Steal focus</Button>
</StackPanel>
</Window>
EDIT
<Window
...
>
<Window.Resources>
<Style x:Key="CollapsedGridStyle" TargetType="{x:Type Grid}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=butt}" Value="True">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel>
<ToggleButton x:Name="butt">Hide</ToggleButton>
<Grid x:Name="GridA"
Style="{StaticResource CollapsedGridStyle}">
<Label Background="Yellow">Grid A</Label>
</Grid>
<Grid x:Name="GridB">
<Label Background="Green">Grid B</Label>
</Grid>
</StackPanel>
</Window>
おかげ@Funk。 2つのグリッド、グリッドAとグリッドBが同じXAMLファイルにあるとします。グリッドAは常に表示されます。ボタンを押すと、グリッドBが表示され、グリッドAが非表示になります。どのように達成するのですか? –
@IndikaPathirage 'Style'に' Key'を追加すると 'Grid A'だけに適用できます。私の更新を見て、 'Button'を状態を保持する' ToggleButton'に変更しました。 – Funk
私は答えをupvoteできません。ありがとうございました! –