C# 用按钮扩展组合框

C# 用按钮扩展组合框,c#,wpf,xaml,combobox,C#,Wpf,Xaml,Combobox,我想扩展WPF组合框,在组合框旁边显示两个按钮。我不能使用UserControl,因为我需要在纯xaml中指定combobox的项,如下所示: <CustomComboBox> <CustomComboBoxItem /> <CustomComboBoxItem /> </CustomComboBox> 我非常害怕使用组合框的模板并扩展它,因为对于组合框来说,它非常大和复杂。我正在寻找一个简单易行的解决方案来创建类似于ItemsC

我想扩展WPF组合框,在组合框旁边显示两个按钮。我不能使用UserControl,因为我需要在纯xaml中指定combobox的项,如下所示:

<CustomComboBox>
   <CustomComboBoxItem />
   <CustomComboBoxItem />
</CustomComboBox>


我非常害怕使用组合框的模板并扩展它,因为对于组合框来说,它非常大和复杂。我正在寻找一个简单易行的解决方案来创建类似于
ItemsControl
的组合框,它只附带两个按钮。欢迎您的建议

编辑:使用
用户控件讲述示例:

Xaml:

用法:

 <local:CustomComboBox ApplyClick="Button2_Click">
     <ComboBoxItem Content="Item1"/>
     <ComboBoxItem Content="Item2"/>
     <ComboBoxItem Content="Item3"/>
 </local:CustomComboBox>
这样,您可以在XAML中设置小时数:

        <local:TimeBox>
            <sys:String>24</sys:String>
        </local:TimeBox>

24

您应该能够对此进行调整,以设置组合框的项目。

这可以通过具有ContentPresenter的控件来完成。它对ItemsControl不起作用。我不太明白你的意思,我用一个工作示例更新了我的答案…我承认这是可行的,但我无法使用此方法为ComboBoxItems提供x:Name属性:(是的,但也许有更好的设计方案来命名这些项,因为在WPF中,由于数据绑定,您通常可以在不命名绝大多数控件的情况下完成任务。我需要这些名称,因为安全系统依赖于它们。它会根据用户的权限调整视图。我们应用程序中的每个项ion有一个名称并且可以被引用,所以如果一些用户不允许看到某些按钮等,我们有一个灵活的GUI配置。如果UserControl不好,并且不可能复制粘贴这两个按钮,那么定制控件只是实现这一点的一种方法。
 <local:CustomComboBox ApplyClick="Button2_Click">
     <ComboBoxItem Content="Item1"/>
     <ComboBoxItem Content="Item2"/>
     <ComboBoxItem Content="Item3"/>
 </local:CustomComboBox>
[ContentProperty("Hours")]
public partial class TimeBox : UserControl
{
    public string Hours
    {
        get { return this.TBHours.Text; }
        set { this.TBHours.Text = value; }
    }

    ...
}
        <local:TimeBox>
            <sys:String>24</sys:String>
        </local:TimeBox>