Xamarin Forms 列表视图数据绑定
Xamarin Forms listview databinding
我目前正在遵循此指南:
http://www.morganskinner.com/2015/01/xamarin-forms-contacts-search.html
我愿意在我的应用程序中制作一个联系人页面,就像那里的图片中显示的那样,但仍然有一些地方不适合我:
我wrote/copied 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>
现在我正在尝试 "display something",尚未从数据列表中动态加载。
我这样声明了一个class:
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 个字段但什么也没有。
我哪里做错了?
此外,直接从我正在工作的页面来看,我无法理解与列表视图关联的这些字段的含义:
GroupDisplayBinding="{绑定键}"
GroupShortNameBinding="{绑定键}"
尽管我在网上四处寻找,但我找不到对他们两个的任何参考。
很可能问题出在您声明 FilteredContacts
的方式上,它应该是 属性,而不是字段。绑定中使用的反射机制只搜索属性,不包括字段。
我目前正在遵循此指南:
http://www.morganskinner.com/2015/01/xamarin-forms-contacts-search.html
我愿意在我的应用程序中制作一个联系人页面,就像那里的图片中显示的那样,但仍然有一些地方不适合我:
我wrote/copied 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>
现在我正在尝试 "display something",尚未从数据列表中动态加载。
我这样声明了一个class:
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 个字段但什么也没有。
我哪里做错了?
此外,直接从我正在工作的页面来看,我无法理解与列表视图关联的这些字段的含义:
GroupDisplayBinding="{绑定键}" GroupShortNameBinding="{绑定键}"
尽管我在网上四处寻找,但我找不到对他们两个的任何参考。
很可能问题出在您声明 FilteredContacts
的方式上,它应该是 属性,而不是字段。绑定中使用的反射机制只搜索属性,不包括字段。