C# 如何从Contact类绑定属性?
我有一个类,其属性名为“ContactInfo”,类型为Microsoft.Phone.UserData.Contact。 我从手机上读取联系人,为每个联系人创建一个类的对象,并设置ContactInfo属性。所有对象都添加到一个ObservableCollection中,该集合显示在LongListSelector中 在C#中,我可以从ObservableCollection的数据源读取元素,并从每个对象的ContactInfo属性读取属性,但在XAML中,数据模板无法访问属性 我知道LongListSelector的数据源设置正确,因为删除数据模板时会显示object.toString(),但设置数据模板时不会显示任何内容,在VS的Output选项卡中,我会收到消息“System.Windows.Data错误:BindingExpression路径错误:“ContactInfo”上未找到“DisplayName”属性。 我是忘了什么还是有什么设置不正确 这是我的模型:C# 如何从Contact类绑定属性?,c#,xaml,data-binding,windows-phone,contacts,C#,Xaml,Data Binding,Windows Phone,Contacts,我有一个类,其属性名为“ContactInfo”,类型为Microsoft.Phone.UserData.Contact。 我从手机上读取联系人,为每个联系人创建一个类的对象,并设置ContactInfo属性。所有对象都添加到一个ObservableCollection中,该集合显示在LongListSelector中 在C#中,我可以从ObservableCollection的数据源读取元素,并从每个对象的ContactInfo属性读取属性,但在XAML中,数据模板无法访问属性 我知道Long
public class CDContact
{
public Contact ContactInfo { get; set; }
public ObservableCollection<CDPhoneNumber> PhoneNumbers{get; set;}
public CDContact()
{
PhoneNumbers = new ObservableCollection<CDPhoneNumber>();
}
}
公共类CDContact
{
公共联系人联系人信息{get;set;}
公共可观测收集电话号码{get;set;}
公共CDContact()
{
PhoneNumber=新的ObservableCollection();
}
}
这是数据模板:
<DataTemplate x:Key="ContactItemTemplate">
<StackPanel VerticalAlignment="Top" DataContext="ContactInfo" >
<TextBlock FontWeight="Bold" Text="{Binding Path=DisplayName, Mode=OneWay}" />
</StackPanel>
</DataTemplate>
假设其他所有设置都正确,这应该可以工作:
<DataTemplate x:Key="ContactItemTemplate">
<StackPanel VerticalAlignment="Top" >
<TextBlock FontWeight="Bold" Text="{Binding Path=ContactInfo.DisplayName, Mode=OneWay}" />
</StackPanel>
</DataTemplate>
此部分似乎有误:
<StackPanel VerticalAlignment="Top" DataContext="ContactInfo" >
试着这样做:
<StackPanel VerticalAlignment="Top" DataContext="{Binding ContactInfo}" >
这个选项也起作用了,我不知道用这种方式编写数据绑定是可能的。