如何从列表框中的项目访问复选框

How to access checkbox from items inside a listbox

我需要对每个项目应用一个条件,如果为真,则应在项目中显示复选框,如果为假,则应隐藏。如何实现?

这里是 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>

尝试使用 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>

您可以使用 DataTriggers 完成此操作。

<DataTemplate.Triggers>

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

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

    </DataTrigger>

</DataTemplate.Triggers>