Wpf 当一个控件在另一个控件上更改时,更改该控件的可见性

Wpf 当一个控件在另一个控件上更改时,更改该控件的可见性,wpf,xaml,triggers,visibility,datatrigger,Wpf,Xaml,Triggers,Visibility,Datatrigger,我的XAML中有3个控件 如果其中一个的可见性更改为可见,则其他可见性应更改为隐藏。这样一次只能看到其中一个 我的Xaml <Control x:Name="Unselected"> <Control.Style> <Style TargetType="Control"> <Style.Triggers> <DataTrigger Binding="{B

我的
XAML中有3个控件

如果其中一个的
可见性
更改为
可见
,则其他
可见性
应更改为
隐藏
。这样一次只能看到其中一个


我的Xaml

<Control x:Name="Unselected">
     <Control.Style>
         <Style TargetType="Control">
             <Style.Triggers>
                 <DataTrigger Binding="{Binding ElementName=Selection, Path=Visibility}" Value="Visible">
                     <Setter Property="Visibility" Value="Hidden" />
                 </DataTrigger>
                 <DataTrigger Binding="{Binding ElementName=Selected, Path=Visibility}" Value="Visible">
                     <Setter Property="Visibility" Value="Hidden" />
                 </DataTrigger>
             </Style.Triggers>
         </Style>
    </Control.Style>
</Control>

<Control x:Name="Selection" Visibility="Hidden">
     <Control.Style>
          <Style TargetType="Control">
              <Style.Triggers>
                  <DataTrigger Binding="{Binding ElementName=Unselected, Path=Visibility}" Value="Visible">
                      <Setter Property="Visibility" Value="Hidden" />
                 </DataTrigger>
                 <DataTrigger Binding="{Binding ElementName=Selected, Path=Visibility}" Value="Visible">
                     <Setter Property="Visibility" Value="Hidden" />
                     </DataTrigger>
              </Style.Triggers>
          </Style>
     </Control.Style>
</Control>

<Control x:Name="Selected" Visibility="Hidden">
     <Control.Style>
         <Style TargetType="Control">
             <Style.Triggers>
                 <DataTrigger Binding="{Binding ElementName=Selection, Path=Visibility}" Value="Visible">
                     <Setter Property="Visibility" Value="Hidden" />
                 </DataTrigger>
                 <DataTrigger Binding="{Binding ElementName=Unselected, Path=Visibility}" Value="Visible">
                     <Setter Property="Visibility" Value="Hidden" />
                 </DataTrigger>
             </Style.Triggers>
         </Style>
    </Control.Style>
</Control>


使用3
单选按钮
修改其
模板
,并使用其
IsChecked
属性。一次只检查其中一个。将
Visibility
属性绑定到
IsChecked
属性。如果
IsChecked
为true,
Visibility=Visible
否则
Visibility=Hidden
使用3
单选按钮
修改其
模板
并使用其
IsChecked
属性。一次只检查其中一个。将
Visibility
属性绑定到
IsChecked
属性。如果
IsChecked
为true,
Visibility=Visible
否则
Visibility=Hidden

可以使用Binding和PropertyChanged。设置属性将引发PropertyChanged并执行触发器

XAML:

基本上,您将需要这样设置属性

EnumOptions = Options.Unselected;
而不是

Unselected.Visibility = true;

您可以使用Binding和PropertyChanged。设置属性将引发PropertyChanged并执行触发器

XAML:

基本上,您将需要这样设置属性

EnumOptions = Options.Unselected;
而不是

Unselected.Visibility = true;

如何更改要显示的控件的可见性?@KyleHancock From Code behindcook您希望一次只显示一个控件。。。那么你的问题是什么呢?@IlVic,它不起作用了……你为什么要用三个
控件
s<代码>控件
类不可见…如何更改要显示的控件的可见性?@KyleHancock From code behind您希望一次只显示一个控件。。。那么你的问题是什么呢?@IlVic,它不起作用了……你为什么要用三个
控件
s<代码>控件
类不可见。。。