由于SelectedItems property
ListBox 控件的 是普通属性而不是要绑定的依赖属性,因此我从 ListBox 派生并创建了一个新的依赖属性SelectedItemsEx
。
但是我的 XAML 编译器一直给我错误
不能在“MyListBox”类型的“SelectedItemsEx”属性上设置“绑定”。只能在 DependencyObject 的 DependencyProperty 上设置“绑定”。
为什么我的属性不被识别为依赖属性?任何帮助表示赞赏,谢谢!
XAML:
<MyListBox ItemsSource="{Binding MyData}" SelectedItemsEx="{Binding SelectedEx}"
SelectionMode="Extended"> ... </MyListBox>
列表框的实现:
public class MyListBox : ListBox
{
public readonly DependencyProperty SelectedItemsExProperty =
DependencyProperty.Register("SelectedItemsEx",
typeof(ObservableCollection<MyItemsDataType>),
typeof(MyListBox),
new PropertyMetadata(default(ObservableCollection<MyItemsDataType>)));
public ObservableCollection<MyItemsDataType> SelectedItemsEx
{
get
{
var v = GetValue(SelectedItemsExProperty);
return (ObservableCollection<MyItemsDataType>)v;
}
set { SetValue(SelectedItemsExProperty, value); }
}
protected override void OnSelectionChanged(SelectionChangedEventArgs e)
{
base.OnSelectionChanged(e);
if (SelectedItemsEx != null)
{
SelectedItemsEx.Clear();
foreach (var item in base.SelectedItems)
{
SelectedItemsEx.Add((MyItemsDataType)item);
}
}
}