我有UserControl
作为其中一个孩子的ListBox
。我希望能够在使用控件时在ItemsSource
本身上定义UserControl
依赖项属性,并让孩子ListBox
将此值用作自己的ItemsSource
属性。
我在IEnumerable
的代码隐藏中定义了ObservableCollection
类型的依赖项属性(我也尝试使用UserControl
),但绑定似乎只适用一次 - 当源列表更改后,CollectionChanged
通知似乎没有通过UserControl
及其子ListBox
传播。
如何在我的UserControl
上定义一个属性,该属性会更新ListBox
,就好像ListBox
中没有嵌入UserControl
一样?
这是我的UserControl的简化视图:
ItemsSource
属性的定义:
public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register("ItemsSource", typeof(IEnumerable), typeof(SidePanelItem), new FrameworkPropertyMetadata(null));
public IEnumerable ItemsSource
{
get { return (IEnumerable)GetValue(ItemsSourceProperty); }
set { base.SetValue(ItemsSourceProperty, value); }
}
尝试将此属性用作ListBox
的{{1}}:
ItemSource