如何将组合框与另一个对象列表中的字符串列表绑定

时间:2015-10-06 17:05:12

标签: xaml c#-4.0 windows-store-apps

Windows商店App 8.1:如何将组合框与另一个对象列表中的字符串列表绑定,这可能吗?

这是我正在尝试的。

 public class CompanyContact
    {    

            public int ContactId { get; set; }   

            public string Name { get; set; }    

            public List<string> EmailAddress { get; set; }    

    }

 private Company _selectedCompany;
        public CompanyContact SelectedCompany
        {
            get { return _selectedCompany; }
            private set
            {
                _selectedCompany= value;

            }
        }

private IEnumerable<CompanyContact> _companyContact;
 public IEnumerable<CompanyContact> CompanyContacts
        {
            get { return _companyContact; }
            set
            {
                _companyContact= value;
            }
        }

以下是使用它的XAMl

<ComboBox Grid.Column="0" Grid.Row="0" MinWidth="500" ItemsSource="{Binding CompanyContacts, Mode=TwoWay}" 
                                    PlaceholderText="Select" DisplayMemberPath="EmailAddress" HorizontalAlignment="Left"
                                        SelectedItem="{Binding SelectedCompany, Mode=TwoWay}"/>
  1. 如何在下拉列表中显示所有公司联系人的所有电子邮件
  2. 选择一封电子邮件后,我需要持有电子邮件的公司对象或所选电子邮件的Contactid。
  3. 上面最好的方法是什么。

1 个答案:

答案 0 :(得分:0)

您设置了DisplayMemberPath =&#34; EmailAddress&#34;但您的EmailAddress属性是一个列表。我将创建一个新的仅获取字符串属性,如DisplayEmailAddresses,它连接EmailAddress列表中的项目并将其用作DisplayMemberPath。

这假设你想要一个组合框,每个CompanyContact都有一行,只显示他们的电子邮件地址。