使用GroupStyle过滤ComboBox

时间:2016-06-13 15:47:35

标签: c# wpf telerik filtering groupstyle

我有一个Telerik ComboBox,它应用了GroupStyle。我想拥有它,以便在过滤项目时,如果组项目没有子项目,则组项目将消失,并且它将继续向上层次结构。

所以,这是初始设置:

enter image description here

电流:

enter image description here

所需:

enter image description here

供参考:

GroupItem Style

<Style TargetType="{x:Type GroupItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Expander Header="{Binding Path=Name}">
                    <ItemsPresenter Margin="20,0,0,0" />
                </Expander>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <DataTrigger
            Binding="{Binding Path=Name}"
            Value="{x:Null}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <ItemsPresenter />
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </DataTrigger>
    </Style.Triggers>
</Style>

radcombobox控件

<telerik:RadComboBox
    Grid.Column="1"
    DisplayMemberPath="Name"
    IsEditable="True"
    IsFilteringEnabled="True"
    ItemsSource="{Binding Path=Analyzers}"
    KeyboardNavigation.TabNavigation="Local"
    OpenDropDownOnFocus="True"
    SelectedItem="{Binding Path=Analyzer, Mode=OneWayToSource}"
    SelectedValue="{Binding Path=AnalyzerId, Converter={utilities:NullToZeroValueConverter}}"
    SelectedValuePath="Id"
    Style="{StaticResource ResourceKey=RadComboBoxStyle.CanDisable}"
    TabIndex="2">
    <telerik:RadComboBox.ItemContainerStyle>
        <Style
            BasedOn="{StaticResource ResourceKey=RadComboBoxItemStyle}"
            TargetType="telerik:RadComboBoxItem">
            <Setter Property="ToolTip" Value="{Binding Path=Description}" />
        </Style>
    </telerik:RadComboBox.ItemContainerStyle>
    <telerik:RadComboBox.GroupStyle>
        <GroupStyle />
    </telerik:RadComboBox.GroupStyle>
</telerik:RadComboBox>       

1 个答案:

答案 0 :(得分:0)

我在Telerik论坛上找到了以下(相关)示例。 Example