0

我有一个用户控件,我需要一个我制作的简单类的列表,称为 Person:

public class Person {
    public string Name { get; set; }
}

现在在用户控件中,我需要一个可以绑定的 ObservableCollection<Person>。所以我想我需要让它成为一个依赖属性。所以在用户控件中我有以下内容:

public static readonly DependencyProperty PersonsDependencyProperty =
    DependencyProperty.Register("Persons", typeof(ObservableCollection<Person>),
                                typeof(PersonUserControl));

属性是这样的:

public ObservableCollection<Person> Persons
{
   get
    {
        return (ObservableCollection<Person>)GetValue(PersonsDependencyProperty);
    }
    set
    {
        SetValue(PersonsDependencyProperty, value);
    }
}

现在在我的 MainWindow.xaml 代码隐藏中,我创建了一个名为 PersonList 的 ObservableCollection<Person>,将主窗口数据上下文设置为 self,然后像这样绑定到它:

<Local:PersonUserControl Persons="{Binding PersonList}">
</Local:PersonUserControl>

我得到了错误:调用的目标抛出了异常。- 没有进一步的解释。谁能告诉我如何应对它或我做错了什么。

我希望我说得足够清楚。

4

1 回答 1

0

PersonsDependencyProperty应该只是PersonsProperty。如果没有更多信息,很难说这是否是根本原因,但这肯定是一个问题。WPF 将“属性”附加到绑定路径以查找相关的依赖项属性。因此,它不会找到你的。

于 2013-01-20T18:53:38.923 回答