我正在尝试在TextCell
组件中显示两个ListView
。可以MainPage.xaml
代码:
<StackLayout>
<Button Text="Go To Map Page" Clicked="Button_OnClicked"/>
<ListView x:Name="MyList">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Name}" />
<TextCell Text="{Binding Age}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
cs code:
namespace App20
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
MyList.ItemsSource = new List<Person>
{
new Person()
{
Name = "Dima",
Age = 20
},
new Person()
{
Name = "Roma",
Age = 21
},
new Person()
{
Name = "Masha",
Age = 19
}
};
}
private async void Button_OnClicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new MapPage());
}
}
}
如果我只显示其中一个元素(名称或年龄),则一切正常。如果我试图显示它们,我的应用程序就会挂起。
第二个问题。为什么只有TextCell
有效?我尝试使用Button
和Label
并对其进行了例外处理。
以下是截图:
答案 0 :(得分:1)
您不能在单个ListView中使用两个单元格。您可以使用TextCell的Detail属性显示第二行文本
<DataTemplate>
<TextCell Text="{Binding Name}" Detail="{Binding Age}" />
</DataTemplate>
或者您可以使用ViewCell
创建自己的自定义单元格布局