GroupBox を折りたたもうとして問題が発生しました。すべての子が折りたたまれている場合に折りたたまれる GroupBox が必要です。
以下に示すように、プロパティへのマルチバインディングを使用してこれを達成することができました。
<StackPanel>
<GroupBox>
<GroupBox.Visibility>
<MultiBinding
Converter="{StaticResource multiBoolOrToVis}"
ConverterParameter="{x:Static Visibility.Collapsed}"
>
<Binding Path="a_visible"/>
<Binding Path="b_visible"/>
</MultiBinding>
</GroupBox.Visibility>
<GroupBox.Header>
<Label Content="GroupBox"/>
</GroupBox.Header>
<StackPanel>
<Label
Content="A"
Visibility="{Binding Path=a_visible, Converter={StaticResource boolToVis}}"
/>
<Label
Content="B"
Visibility="{Binding Path=b_visible, Converter={StaticResource boolToVis}}"
/>
</StackPanel>
</GroupBox>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox
Content="A Visible"
Grid.Column="0"
Grid.Row="1"
IsChecked="{Binding Path=a_visible, Mode=TwoWay}"
/>
<CheckBox
Content="B Visible"
Grid.Column="1"
Grid.Row="1"
IsChecked="{Binding Path=b_visible, Mode=TwoWay}"
/>
</Grid>
</StackPanel>
これに関する問題は、これを複数回実行できるようにする必要があり、バインディングを残すことを心配しないことです。だから私の質問は、これを一般的に、できればスタイルで行う方法があるということです。もう 1 つの要件は、コード ビハインドではなく xaml である必要があることです。
したがって、私の理想的な答えはスタイルになるので、xamlで次のことができます。
<StackPanel>
<GroupBox Style="ChildrenVisibilityStyle">
<GroupBox.Header>
<Label Content="GroupBox"/>
</GroupBox.Header>
<StackPanel>
<Label
Content="A"
Visibility="{Binding Path=a_visible, Converter={StaticResource boolToVis}}"
/>
<Label
Content="B"
Visibility="{Binding Path=b_visible, Converter={StaticResource boolToVis}}"
/>
</StackPanel>
</GroupBox>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox
Content="A Visible"
Grid.Column="0"
Grid.Row="1"
IsChecked="{Binding Path=a_visible, Mode=TwoWay}"
/>
<CheckBox
Content="B Visible"
Grid.Column="1"
Grid.Row="1"
IsChecked="{Binding Path=b_visible, Mode=TwoWay}"
/>
</Grid>
</StackPanel>
これらの質問を見て、これは不可能だと思いました。controltemplate のバインディング、stackpanel の可視性、border の可視性。
これが以前に回答されている場合は申し訳ありません。回答/コメントをお寄せいただきありがとうございます。