C# 如何在Xamarin.Forms中创建多列ListView?
我有一列的listview,但我想像一个中继器一样分成两列。是否可能以xamarin.forms的形式出现 您应该为此创建自己的控件,或者查看一下我认为您可以使用ViewCell创建一个DataTemplate。将网格添加到行=1、列=2的ViewCell中 像这个样的东西C# 如何在Xamarin.Forms中创建多列ListView?,c#,xamarin.forms,C#,Xamarin.forms,我有一列的listview,但我想像一个中继器一样分成两列。是否可能以xamarin.forms的形式出现 您应该为此创建自己的控件,或者查看一下我认为您可以使用ViewCell创建一个DataTemplate。将网格添加到行=1、列=2的ViewCell中 像这个样的东西 <ListView x:Name="listView"> <ListView.ItemTemplate> <DataTemplate> <ViewCell&g
<ListView x:Name="listView">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
...
<Label Text="{Binding Name}" FontAttributes="Bold" />
<Label Grid.Column="1" Text="{Binding Age}" />
<Label Grid.Column="2" Text="{Binding Location}" ... />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
...
你可以找到描述
<ContentPage.Content>
<StackLayout>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30*" />
<ColumnDefinition Width="30*" />
<ColumnDefinition Width="30*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0" Text="ID"/>
<Label Grid.Column="1" Grid.Row="0" Text="USERS"/>
<Label Grid.Column="2" Grid.Row="0" Text="PASSWORD"/>
</Grid>
<ListView x:Name="listx">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30*" />
<ColumnDefinition Width="30*" />
<ColumnDefinition Width="30*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding id}"/>
<Label Grid.Column="1" Text="{Binding usr}"/>
<Label Grid.Column="2" Text="{Binding pass}"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
</ContentPage>
contentPage.xaml.cs
public partial class UserPage : ContentPage
{
ObservableCollection<UserModel> Usr_List = new ObservableCollection<UserModel>();
public UserPage ()
{
InitializeComponent ();
//test data population
this.Usr_List.Add(new UserModel { id = 1, usr = "test", pass = "test" });
this.Usr_List.Add(new UserModel { id = 2, usr = "test1", pass = "test1" });
this.Usr_List.Add(new UserModel { id = 3, usr = "test2", pass = "test2" });
listx.ItemsSource = this.Usr_List;
}
}
public部分类UserPage:ContentPage
{
ObservableCollection Usr_List=新的ObservableCollection();
公共用户页()
{
初始化组件();
//测试数据总体
这个.Usr_List.Add(新用户模型{id=1,Usr=“test”,pass=“test”});
这个.Usr_List.Add(新用户模型{id=2,Usr=“test1”,pass=“test1”});
这个.Usr_List.Add(新用户模型{id=3,Usr=“test2”,pass=“test2”});
listx.ItemsSource=this.Usr\u列表;
}
}
我发现这个解决方案很有用,但我们仍然需要为每个项目的click listener做一些变通。
public partial class UserPage : ContentPage
{
ObservableCollection<UserModel> Usr_List = new ObservableCollection<UserModel>();
public UserPage ()
{
InitializeComponent ();
//test data population
this.Usr_List.Add(new UserModel { id = 1, usr = "test", pass = "test" });
this.Usr_List.Add(new UserModel { id = 2, usr = "test1", pass = "test1" });
this.Usr_List.Add(new UserModel { id = 3, usr = "test2", pass = "test2" });
listx.ItemsSource = this.Usr_List;
}
}