【发布时间】:2013-06-20 22:57:40
【问题描述】:
由于 ListBox 控件的 SelectedItems property 是普通属性,不是要绑定的依赖属性,因此我从 ListBox 派生并创建了一个新的依赖属性 SelectedItemsEx。 p>
但是我的 XAML 编译器一直给我错误
不能在 'SelectedItemsEx' 属性上设置“绑定” 键入“我的列表框”。只能在 DependencyProperty 上设置“绑定” 一个 DependencyObject。
为什么我的属性未被识别为依赖属性?感谢您的帮助,谢谢!
XAML:
<MyListBox ItemsSource="{Binding MyData}" SelectedItemsEx="{Binding SelectedEx}"
SelectionMode="Extended"> ... </MyListBox>
ListBox 的实现:
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);
}
}
}
【问题讨论】:
标签: c# wpf binding dependency-properties