使用C#继承WPF中的组合框

本文关键字:组合 WPF 继承 使用 | 更新日期: 2023-09-27 17:58:46

我从组合框派生来添加一些附加功能,例如复选框。

问题是,即使使用简单的实现,Items.Add方法也不起作用。

例如,这里是XAML:

<Style TargetType="{x:Type local:CustomControl1}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:CustomControl1}">
                <ComboBox>
                </ComboBox>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

ComboBox是可见的,但当我调用Items.Add方法时,不会添加任何信息。我需要从ComboBox类实现什么才能实现这一点?我需要对弹出窗口做点什么吗?添加文本块?

使用C#继承WPF中的组合框

在我看来,这不像是从ComboBox派生的。。。在我看来,您正在将ComboBox放入自定义控件的ControlTemplate中。

如果ComboBox派生自定义控件,并在自定义控件上调用Items.Add,则基本上有两个数据列表(一个用于自定义控件,另一个用于控件模板中的组合框),并且它们没有以任何方式链接。

我建议打开Expression Blend并查看默认ComboBox的控制模板。如果您想从ComboBox派生,则可以修改该控制模板以满足您的需要。