Xamarin表单显示电子邮件收件人列表

时间:2017-10-17 13:37:16

标签: c# xamarin xamarin.forms

我对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类组合,但没有成功。

任何关于如何实现这一目标的想法都将受到赞赏。

1 个答案:

答案 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属性。这应该显示一个标签列表,一个用于数据中的每个收件人,标签输出到屏幕。