2016-05-18 5 views
0

私はトグルボタンと可視性を設定したいcomSectionという名前のグリッドがあります。変更グリッドVisibilityプロパティ

未確認=が崩壊し

確認=視認

グリッドとトグルボタンはDataTemplateと私はC#での視認性にアクセスしようとする多くの問題を持っていたListBox

内にある:

私はそれは純粋なXAMLでの視認性をバインドすることが可能となるのであれば、私は疑問に思う

を動作させることはできませんPropertyChangedEventHandlerを使用

comSection.Visibility = System.Windows.Visibility.Collapsed; //can't access this way 

。たぶんBooleanToVisibilityConverterを使用しています。


EDIT私のXAML

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="71*"/> 
     <ColumnDefinition Width="580*"/> 
    </Grid.ColumnDefinitions> 
    <Grid x:Name="IssueList" Grid.Column="1"> 
     <ListBox x:Name="listBox" MouseDoubleClick="ListBox_MouseDoubleClick" BorderThickness="0,0,0,0" 
      ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalContentAlignment="Stretch" 
      ItemsSource="{Binding Issues, Mode=OneWay}" Grid.Column="1" > 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <Grid x:Name="grd"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="100"/> 
          <ColumnDefinition Width="auto"/> 
          <ColumnDefinition Width="*"/> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="auto"/> 
          <RowDefinition Height="*"/> 
          <RowDefinition Height="*"/> 
         </Grid.RowDefinitions> 

         <!-- Other code here --> 


         <!-- The ToggleButton --> 
         <ToggleButton x:Name="comSecButton" Width="10" Height="10" Click="comSection.Visibility = Collapsed" Background="Transparent" BorderThickness="0" 
           Grid.Column="2" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Bottom" 
           Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, Path=IsSelected, Converter={StaticResource booleanVisibleConverter}}"> 

         </ToggleButton> 

         <!-- The Grid I want to show/hide --> 
         <Grid x:Name="comSection" Visibility="{Binding comSec_Click, Converter={StaticResource booleanVisibleConverter}}" Grid.Column="2" Grid.Row="2"> 

          <TextBox x:Name="comment" HorizontalAlignment="Right" 
          Height="23" TextWrapping="Wrap" VerticalAlignment="Bottom" Width="148" /> 
         </Grid> 

        </Grid> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
    </Grid> 
+0

あなたは、XAMLとコードを投稿した場合、誰かが助けることができるはずです君は。それを行うには複数の方法がありますが、それは簡単でなければなりません。言及したコンバータも動作するはずです。 – adminSoftDK

答えて

0

グリッドのスタイルにDataTriggerを使用します。

<Grid x:Name="comSection" Grid.Column="2" Grid.Row="2"> 
    <Grid.Style> 
     <Style TargetType="Grid"> 
      <Setter Property="Visibility" Value="Collapsed"/> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding IsChecked, ElementName=comSecButton}" 
          Value="True"> 
        <Setter Property="Visibility" Value="Visible"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Grid.Style> 
    ... 
</Grid> 
関連する問題