【解決方法】複数のオプションを使用する WPF グリッド リソース バインディングを使用するにはどうすればよいですか?

プログラミングQA


こんにちは、私はMVVMパターンに従おうとしています.WPFアプリで2つの条件がある特定のグリッドを非表示にしたいと思っています.

私が試したこと:

C#
<Grid.Resources>
	<Style
		TargetType="{x:Type Grid}">
		<Style.Triggers>
			<DataTrigger Binding="{Binding collection1.Count}" Value="0">
				<Setter Property="Visibility" Value="Collapsed"/>
			</DataTrigger>
		</Style.Triggers>
	</Style>
</Grid.Resources>

ここで、上記のコードで実行したい別のチェックがあります。 Binding="{Binding collection1.Count}" また Binding="{Binding collection2.Count}" それらの値のいずれかが0の場合、実装します <Setter Property="Visibility" Value="Collapsed"/>

datatrigger を使用してこれを行うにはどうすればよいですか (可能な場合)。 できますか IValueConverter これを行うために使用されますか? どうやって ?

解決策 1

これほど単純な場合は、次の 2 つのトリガーを追加するだけです。

XAML
<Style.Triggers>
    <DataTrigger Binding="{Binding collection1.Count}" Value="0">
        <Setter Property="Visibility" Value="Collapsed" />
    </DataTrigger>
    <DataTrigger Binding="{Binding collection2.Count}" Value="0">
        <Setter Property="Visibility" Value="Collapsed" />
    </DataTrigger>
</Style.Triggers>

いずれかのコレクションが空の場合、グリッドは非表示になります。

さらに複雑な場合は、ビューモデルにプロパティを追加して、グリッドを表示するかどうかを示します。 あなたが上げたことを確認する必要があります PropertyChanged 依存する値のいずれかが変更されるたびに、そのプロパティのイベント。

コメント

タイトルとURLをコピーしました