我创建了一个复杂的自定义控件,它既使用了继承控件的Items属性,又使用了其他嵌入式SubItems
的{{1}}。请在下面找到剥离的代码提取:
ItemsControl
使用以下模板(来自Generic.xaml):
public class MyControl : ItemsControl
{
public static readonly DependencyProperty SubItemsProperty = DependencyProperty.Register("SubItems", typeof(ObservableCollection<object>), typeof(MyControl), new PropertyMetadata(null));
public ObservableCollection<object> SubItems
{
get { return (ObservableCollection<object>)GetValue(SubItemsProperty); }
set { SetValue(SubItemsProperty, value); }
}
public MyControl() : base()
{
SubItems = new ObservableCollection<object>();
}
static MyControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyControl), new FrameworkPropertyMetadata(typeof(MyControl)));
}
}
项目将动态添加到<Style TargetType="{x:Type my:MyControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type my:MyControl}">
<Grid>
<ItemsControl ItemsSource="{Binding SubItems, RelativeSource={RelativeSource TemplatedParent}}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
。
控件在控件的构造函数中运行正常,SubItems Collection
设置为非空集合。例如,通过设置SubItems
。这可能是什么原因?