私は2つ持っていますUserControl's
、
ViewModel の値に応じて、毎回別の UserControl を表示したいと思います。
UserControl
彼らは彼らを包み込むように座るはずです。
これどうやってするの?
ここでラッパー:
<UserControl>
<local:UserControl1></local:UserControl1>// I want it to change by a binding
</UserControl>
私は2つ持っていますUserControl's
、
ViewModel の値に応じて、毎回別の UserControl を表示したいと思います。
UserControl
彼らは彼らを包み込むように座るはずです。
これどうやってするの?
ここでラッパー:
<UserControl>
<local:UserControl1></local:UserControl1>// I want it to change by a binding
</UserControl>
ViewModel にbool プロパティBoolProperty
を含めることができ、その値に基づいて、次を使用して他のコントロールの可視性を切り替えることができますBooleanToVisibilityConverter
-
<UserControl>
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</UserControl.Resources>
<local:UserControl1 Visibility="{Binding BoolProperty, Converter=
{StaticResource BooleanToVisibilityConverter}}"/>
</UserControl>
BoolProperty
の値が になるたびにtrue
、コントロールは にvisible
なり、 の場合はfalse
になりますcollapsed
。
DataTrigger でそれを行います。これは記憶からのものですが、あなたを助けるかもしれません:
<ContentControl>
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="Content">
<Setter.Value>
<local:UserControl1 />
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding BoolProperty}" Value="True">
<Setter Property="Content">
<Setter.Value>
<local:UserControl2 />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>