我正在尝试构建一个用户控件,可以像这样从XAML中获取元素:
<ComboBox >
<ComboBoxItem />
<ComboBoxItem />
<ComboBoxItem />
</ComboBox>
在
ComboBox
中,您只需在 ComboBox
标签之间添加项目,我想复制这个功能,但不知道从哪里开始。完成后应该如下所示:
<cis:ReportControl Grid.Row="3">
<cis:ReportItem />
</cis:ReportControl>
在中,有一些按钮和一个组合框,基本上我只想用项目来填充。
报告项只是一个带有一些额外属性的。
编辑:
我已经按照@Snowbears的答案实现了它,但现在问题是控件本身作为一个项目。 我认为这是因为我有一些内容,通过将定义为我的,它被重定向到框中。 我该怎么做才能避免这种情况?
编辑II:
现在完全可以使用以下内容:
private ItemCollection reportItems;
public ItemCollection ReportItems
{
get
{
if (reportItems == null)
{
reportItems = this.ComboBoxReports.Items;
}
return reportItems;
}
}
使用
[ContentProperty("ReportItems")]
属性。ComboBoxReports是控件中的ComboBox,我不得不从ItemsControl
继承才能使其正常工作。