Я пытаюсь создать usercontrol, который может принимать элементы из XAML, например:
<ComboBox >
<ComboBoxItem />
<ComboBoxItem />
<ComboBoxItem />
</ComboBox>
В ComboBox
вы можете просто добавить элементы между тегами ComboBox
, и я хотел бы скопировать это, но я не знаю, с чего начать.
Готово это должно выглядеть так:
<cis:ReportControl Grid.Row="3">
<cis:ReportItem />
</cis:ReportControl>
В cis:ReportControl
есть Button
s и ComboBox
, и в основном я хочу кормить ComboBox
Предметами.
Элемент отчета - это просто ComboBoxItem
с некоторыми дополнительными свойствами.
Edit:
Я реализовал его в соответствии с ответом @Snowbears, но теперь проблема в том, что элемент управления сам по себе является элементом.
Я думаю, это потому, что у меня есть некоторый контент, и, определив ContentProperty
для моего ComboBox
, он перенаправляется в Box.
Что я могу сделать, чтобы избежать этого?
Редактировать II:
Теперь он полностью работает с этим:
private ItemCollection reportItems;
public ItemCollection ReportItems
{
get
{
if (reportItems == null)
{
reportItems = this.ComboBoxReports.Items;
}
return reportItems;
}
}
с атрибутом [ContentProperty("ReportItems")]
. ComboBoxReports - это ComboBox в Control, и мне пришлось унаследовать от ItemsControl
, чтобы заставить его работать.