Tôi đang cố gắng để xây dựng một Mà usercontrol có thể đưa các yếu tố từ XAML như thế này:Làm thế nào để tạo ComboBox như UserControl trong WPF
<ComboBox >
<ComboBoxItem />
<ComboBoxItem />
<ComboBoxItem />
</ComboBox>
Trong ComboBox
, bạn có thể chỉ cần thêm Items giữa ComboBox
và tôi muốn sao chép điều này, nhưng tôi không biết bắt đầu từ đâu.
Xong nó sẽ giống như thế này:
<cis:ReportControl Grid.Row="3">
<cis:ReportItem />
</cis:ReportControl>
Trong cis:ReportControl
, có một số Button
s và một ComboBox
, và về cơ bản tôi chỉ muốn để nuôi ComboBox
với Items.
Mục báo cáo chỉ là ComboBoxItem
với một số thuộc tính bổ sung.
Edit:
Tôi đã thực hiện nó theo @Snowbears câu trả lời, nhưng vấn đề bây giờ là sự kiểm soát có chính nó như là một mục. Tôi nghĩ rằng điều này là do tôi có một số nội dung, và bằng cách xác định ContentProperty
đến ComboBox
của tôi, nó được chuyển hướng vào Hộp. Tôi có thể làm gì để tránh điều này?
Sửa II:
Nó hoàn toàn làm việc bây giờ với điều này:
private ItemCollection reportItems;
public ItemCollection ReportItems
{
get
{
if (reportItems == null)
{
reportItems = this.ComboBoxReports.Items;
}
return reportItems;
}
}
với [ContentProperty("ReportItems")]
Thuộc tính. ComboBoxReports là ComboBox trong Control, và tôi đã kế thừa từ ItemsControl
để làm cho nó hoạt động.