隐藏组合框项目

Hide ComboBox Item

我正在使用填充了一些用户级别的 ComboBox:

我还使用转换器来检查用户级别是否可见。 转换器工作正常。但项目仍在列表中,它们只是空的:

我在 Combobox 中使用 TextBlock 来显示文本。 这是我的代码:

<ComboBox x:Name="UserlevelComboBox" Width="300" Height="50"
               ItemsSource="{Binding Path=UserlevelList}"
               SelectedValue="{Binding Userlevel.Id}"
               SelectedValuePath="Id"
               SelectedItem="{Binding Userlevel}"
               IsSynchronizedWithCurrentItem="True">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Text}">
                <TextBlock.Style>
                    <Style TargetType="{x:Type TextBlock}">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Path=Userlevel, Converter={StaticResource userlevelConverter}}" Value="False">
                                <Setter Property="Visibility" Value="Collapsed"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </TextBlock.Style>
            </TextBlock>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

是否可以让组合框项目看起来像这样:

非常感谢。最好的问候菲尔

目前您只隐藏了 TextBlocks。但是在 ComboBox 中,项目被包装在容器项目中 - ComboBoxItem - 仍然可见。

在 ComboBox.ItemContainerStyle 中应用您的 DataTrigger。:

<ComboBox x:Name="UserlevelComboBox" Width="300" Height="50"
               ItemsSource="{Binding Path=UserlevelList}"
               SelectedValue="{Binding Userlevel.Id}"
               SelectedValuePath="Id"
               SelectedItem="{Binding Userlevel}"
               IsSynchronizedWithCurrentItem="True">
    <ComboBox.ItemContainerStyle>

        <Style TargetType="{x:Type ComboBoxItem}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Userlevel, Converter={StaticResource userlevelConverter}}" Value="False">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>

    </ComboBox.ItemContainerStyle>
</ComboBox>