我对Xamarin表格相关新手C#。
我正在尝试在Xamarin Forms应用中显示电子邮件收件人列表。
模型类有:
public class EmailAddress3
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("address")]
public string Address { get; set; }
}
public class ToRecipient
{
[JsonProperty("emailAddress")]
public EmailAddress3 EmailAddress { get; set; }
}
和
public class MailItem
{
........
[JsonProperty("toRecipients")]
public ToRecipient[] ToRecipients { get; set; }
.........
}
背后的C#代码
public partial class EmailDetailPage : ContentPage
{
public EmailDetailPage(MailItem sentMailDetail)
{
if (sentMailDetail == null)
throw new ArgumentNullException();
BindingContext = sentMailDetail;
InitializeComponent();
}
}
和XAML文件
<StackLayout>
<Label Text="{Binding CcRecipients.EmailAddress.Name}" />
</StackLayout>
当我在设备上运行它时,我不断收到以下错误消息:
Binding: 'EmailAddress' property not found on 'ISPulse.Model.CcRecipient[]'
,target property: 'Xamarin.Forms.Label.Text'
我尝试过不同的标签和Model类组合,但没有成功。
任何关于如何实现这一目标的想法都将受到赞赏。
答案 0 :(得分:1)
如果ccRecipients是一个集合,那么您可以将ListView绑定到该集合,如:
<ContentPage ... x:Name="MyPage">
<ListView x:Name="ListviewRecipients"
ItemsSource="{Binding ccRecipients, Source={x:Reference MyPage}}"
VerticalOptions="Fill">
<Label Text="{Binding EmailAddress.Name}" />
</ListView>
</ContentPage>
更新MyPage
以匹配XAML文件中根元素的x:Name属性。这应该显示一个标签列表,一个用于数据中的每个收件人,标签输出到屏幕。