使用C#在WPF中继承ComboBox

时间:2011-06-08 16:23:52

标签: c# wpf xaml custom-controls

我从Combobox派生出来添加一些额外的功能,例如复选框。

问题是,即使使用简单的实现,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类实现什么来实现这一目标?我需要用弹出窗口做些什么吗?添加文本块?

1 个答案:

答案 0 :(得分:1)

我不认为你是从ComboBox派生出来的...我觉得你在自定义控件的ComboBox内加ControlTemplate

如果您 ComboBox派生自定义控件并在自定义控件上调用Items.Add,那么您基本上有两个数据列表(一个用于您的自定义控件和一个用于控制模板中的组合框)并且它们没有任何关联。

我建议弹出开放Expression Blend并查看控件模板以获取默认ComboBox。如果您想从ComboBox派生,则可以修改该控件模板以满足您的需求。