2017-08-11 24 views
1

私はWPF(と.Net一般)の初心者です。私は2 ComboBoxを持っていて、最初のもので2番目の可視性を制御したい:WPF - コンボボックスでの条件付き可視性

右コンボボックスで "Uno"を選択した場合、右コンボボックスは非表示になります。

これは私のXAMLです:

<Window x:Class="WpfApp1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:WpfApp1" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <ComboBox x:Name="Left" HorizontalAlignment="Left" Margin="66,47,0,0" VerticalAlignment="Top" Width="120"> 
     <ComboBoxItem Content="Uno"></ComboBoxItem> 
     <ComboBoxItem Content="Dos"></ComboBoxItem> 
    </ComboBox> 
    <ComboBox x:Name="Right" HorizontalAlignment="Left" Margin="326,47,0,0" VerticalAlignment="Top" Width="120"> 
     <Style TargetType="ComboBox"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=Left, Path=SelectedItem}" Value="Uno"> 
        <Setter Property="Visibility" Value="Hidden"></Setter> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ComboBox> 

</Grid> 

私も

<DataTrigger Binding="{Binding ElementName=Left, Path=SelectedIndex}" Value="0"> 
     <Setter Property="Visibility" Value="Hidden"></Setter> 
</DataTrigger> 

あなたの助けのおかげで、あなたの時間

答えて

3

ちょうどComboBoxStyleプロパティを設定し、SelectedItem.Contentにバインド:

<ComboBox x:Name="Right" HorizontalAlignment="Left" Margin="326,47,0,0" VerticalAlignment="Top" Width="120"> 
    <ComboBox.Style> 
     <Style TargetType="ComboBox"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=Left, Path=SelectedItem.Content}" Value="Uno"> 
        <Setter Property="Visibility" Value="Hidden"></Setter> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ComboBox.Style> 
</ComboBox> 
1
<Grid> 
    <Grid.Resources> 
     <local:IntToVisibilityConverter x:Key="IntToVisibilityConverter" /> 
    </Grid.Resources> 

    <ComboBox x:Name="Left" HorizontalAlignment="Left" Margin="66,47,0,0" VerticalAlignment="Top" Width="120"> 
     <ComboBoxItem Content="Uno"></ComboBoxItem> 
     <ComboBoxItem Content="Dos"></ComboBoxItem> 
    </ComboBox> 

    <ComboBox x:Name="Right" HorizontalAlignment="Left" Margin="326,47,0,0" VerticalAlignment="Top" Width="120" Visibility="{Binding ElementName=Left, Path=SelectedIndex,Converter={StaticResource IntToVisibilityConverter}}"> 
    </ComboBox> 
</Grid> 
を試してみました
関連する問題