Xamarin表单listview数据绑定

时间:2015-02-20 11:39:43

标签: c# wpf xaml listview xamarin

我目前正在遵循本指南:

http://www.morganskinner.com/2015/01/xamarin-forms-contacts-search.html

我愿意在我的应用程序中创建一个联系人页面,就像那里的图片中显示的那样,仍然有些东西不适合我:

我写了/复制了XAML:

    <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <SearchBar x:Name="search" Placeholder="Search"/>

    <ListView x:Name="ProvaView" Grid.Row="1" ItemsSource="{Binding FilteredContacts}" IsGroupingEnabled="true" GroupDisplayBinding="{Binding Key}" GroupShortNameBinding="{Binding Key}">
      <ListView.ItemTemplate>
        <DataTemplate>
          <TextCell Text="{Binding Name}" TextColor="Black" Detail="{Binding PhoneNumber}" DetailColor="Gray">
          </TextCell>
        </DataTemplate>
      </ListView.ItemTemplate>
    </ListView>

  </Grid>

现在我正在尝试从数据列表中“显示某些东西”,而不是正常加载(<)。

我宣布了这样一个类:

 public class Contact
    {
        public string Name { get; set; }
        public string PhoneNumber { get; set; }
    }
}

现在xaml背后的代码是:

public partial class ContactsPage : MasterDetailPage
    {
        public List<Contact> FilteredContacts = new List<Contact>
            {
                new Contact
                {
                    Name = "Guido",
                    PhoneNumber = "3292773477"
                },
                new Contact
                {
                    Name = "Luca",
                    PhoneNumber = "3472737445"
                },
                new Contact
                {
                    Name = "Luca",
                    PhoneNumber = "3472737445"
                }
            };

        public ContactsPage()
        {
            InitializeComponent();
            ProvaView.ItemsSource = FilteredContacts;
        }
}

当我启动应用程序时,我得到的只是一个空的列表视图,有3个字段,但没有任何内容。

我在哪里做错了?

另外,直接从我正在处理的页面,我无法理解与listview关联的这些字段的含义:

GroupDisplayBinding =“{Binding Key}” GroupShortNameBinding =“{Binding Key}”

尽管我可以在网上浏览一下,但我找不到对它们的任何引用。

1 个答案:

答案 0 :(得分:9)

问题很可能是你声明FilteredContacts的方式,它应该是属性,而不是字段。绑定中使用的反射机制仅搜索属性,不包括字段。