解決策 1:
すべてのページで、次のようにコントロールを非表示/表示するトリガーを追加できます-
<ComboBox Height="22" Name="comboBox1" />
<Grid>
<Grid.Style>
<Style TargetType="{x:Type Grid}">
<Setter Property="Visibility" Value="Visible"></Setter>
<Style.Triggers>
<DataTrigger
Binding="{Binding ElementName=comboBox1, Path=SelectedItem}"
Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
<Grid.Style>
<!-- Your controls; TextBox, Buttons etc. -->
</Grid>
解決策 2:
より複雑なロジックが必要な場合 (2 つのコンボボックスに基づくなど) を作成しMultiValueConverter
、上記の XAML でそれを使用してVisibility
Grid.
これを複数のウィンドウで再利用する場合は、スタイルを作成してすべてのウィンドウのグリッドに適用できます。
解決策 3:
倫理論理が提案するように、共通のViewModelを作成します。
ViewModel アプローチを使用する場合、プロパティを持つ必要はありません。トリガーまたはコンバーターでプロパティをVisibility
使用するだけです。SelectedItem
別のプロパティを作成したい場合でも、Boolean
型を作成して XAML で使用することをお勧めします。
3 つのケースすべてで共通のスタイルを作成し、それをすべてのウィンドウで再利用できます。