2015-04-27 2 views
2

Мне нужно применить условие к каждому элементу, если true, оно должно отображать флажок в элементе, если false, он должен скрываться. Как это сделать?Как получить доступ к флажку из элементов внутри списка

здесь является XAML:

    <ListBox Name="lbAllInstances" Width="500" Height="400" 
         SelectionMode="Multiple" 
         ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
         ScrollViewer.VerticalScrollBarVisibility="Visible" 
         SelectionChanged="lbAllInstances_SelectionChanged"> 

         <ListBox.ItemTemplate> 
          <DataTemplate> 
           <Grid> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="Auto" /> 
             <ColumnDefinition Width="6" /> 
             <ColumnDefinition Width="*" /> 
            </Grid.ColumnDefinitions> 
            <CheckBox Grid.Column="0" VerticalAlignment="Center" /> 
            <TextBlock Grid.Column="2" Text="{Binding Name}" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" /> 
           </Grid> 
          </DataTemplate> 
         </ListBox.ItemTemplate> 

        </ListBox> 

ответ

1

Попробуйте использовать BooleanToVisibilityConverter

<!-- In your resources section of the XAML --> 
<BooleanToVisibilityConverter x:Key="BoolToVis" /> 

<ListBox.ItemTemplate> 
    ... 
    <CheckBox Grid.Column="0" VerticalAlignment="Center" 
    Visibility="{Binding Path=IsVisibleProperty, Converter={StaticResource BoolToVis}}"/> 
    ... 
</ListBox.ItemTemplate> 
0

Вы можете выполнить это с помощью DataTriggers.

<DataTemplate.Triggers> 

    <DataTrigger Binding="{Binding Path=PropertyThatSetsVisibility}" Value="True"> 

     <Setter TargetName="NameOfCheckBoxToHideInItemTemplate" Property="Visibility" Value="Hidden"/> 

    </DataTrigger> 

</DataTemplate.Triggers> 
Смежные вопросы