考虑列表视图:
<ListView ItemsSource="{x:Bind People}">
<ListView.ItemTemplate x:DataType="models:Person">
<controls:PersonItem Person="{...}" />
</ListView.ItemTemplate>
</ListView>
在本例中,People
是在代码隐藏中定义的ObservebleCollection<Person>
类型的属性。类Person
定义如下:
public class Person : INotifyPropertyChanged
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
// The implemention of INotifyPropertyChanged:
...
}
控件PersonItem
是定义了DependencyProperty
的自定义用户控件,称为Person
,并接收Person
对象作为值。此控件将使用此属性的成员在屏幕上显示一些信息。
我想知道的是如何将Person
属性绑定到数据模板中的数据本身,换句话说,应该使用什么来替换第一个代码片段中的...
?
虽然我知道Person
中的属性太少了,我可以简单地在我的自定义控件中将每个属性定义为DependencyProperty
,但我遇到的实际情况是,我得到了一个类,它有太多的属性需要在一个控件中使用,那么我需要做的工作就太多了。
1条答案
按热度按时间ecr0jaav1#
x:Bind
或Binding
应该都可以工作。