列表视图中项目的不同位置xamarin
different position of items in a listview xamarin
我正在尝试使用列表视图。
首先,我用它让我的项目在一列中对齐,它起作用了
现在我正在尝试寻找一种解决方案,以防止我的项目在列中对齐。
为此我有一个 8 行 8 列的网格。
我想要 : 中的第一项
Grid.Row="1" Grid.Column ="1"
我想要第二个项目:
Grid.Row="3" Grid.Column ="3"
我想要第三项:
Grid.Row="6" Grid.Column ="3"
我想要第四项:
Grid.Row="8" Grid.Column ="1"
你觉得可能吗?你有什么主意吗?
我确实读过 ItemView 和 listview 文档,但我没有找到任何关于网格位置的信息。
国王问候
您需要自定义网格。
网格
public class MyGird: Grid
{
Label first;
Label second;
Label third;
Label fourth;
public MyGird()
{
this.BindingContextChanged += MyGird_BindingContextChanged;
for(int i = 0; i < 8; i++)
{
RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
}
for (int i = 0; i < 8; i++)
{
ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
}
first = new Label { };
second = new Label { };
third = new Label { };
fourth = new Label { };
Children.Add(first, 0, 0);
Children.Add(second, 2, 2);
Children.Add(third, 5, 2);
Children.Add(fourth, 7, 0);
}
private void MyGird_BindingContextChanged(object sender, EventArgs e)
{
var grid = sender as Grid;
var obj = grid.BindingContext as List<string>;
first.Text = obj[0];
second.Text = obj[1];
third.Text = obj[2];
fourth.Text = obj[3];
}
}
数据
public List<string> list { get; set; }
public Page2()
{
InitializeComponent();
list = new List<string> { "1", "2", "3", "4" };
this.BindingContext = this;
}
用法
<local:MyGird BindingContext="{Binding list}"/>
我正在尝试使用列表视图。 首先,我用它让我的项目在一列中对齐,它起作用了
现在我正在尝试寻找一种解决方案,以防止我的项目在列中对齐。
为此我有一个 8 行 8 列的网格。
我想要 : 中的第一项
Grid.Row="1" Grid.Column ="1"
我想要第二个项目:
Grid.Row="3" Grid.Column ="3"
我想要第三项:
Grid.Row="6" Grid.Column ="3"
我想要第四项:
Grid.Row="8" Grid.Column ="1"
你觉得可能吗?你有什么主意吗? 我确实读过 ItemView 和 listview 文档,但我没有找到任何关于网格位置的信息。
国王问候
您需要自定义网格。
网格
public class MyGird: Grid
{
Label first;
Label second;
Label third;
Label fourth;
public MyGird()
{
this.BindingContextChanged += MyGird_BindingContextChanged;
for(int i = 0; i < 8; i++)
{
RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
}
for (int i = 0; i < 8; i++)
{
ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
}
first = new Label { };
second = new Label { };
third = new Label { };
fourth = new Label { };
Children.Add(first, 0, 0);
Children.Add(second, 2, 2);
Children.Add(third, 5, 2);
Children.Add(fourth, 7, 0);
}
private void MyGird_BindingContextChanged(object sender, EventArgs e)
{
var grid = sender as Grid;
var obj = grid.BindingContext as List<string>;
first.Text = obj[0];
second.Text = obj[1];
third.Text = obj[2];
fourth.Text = obj[3];
}
}
数据
public List<string> list { get; set; }
public Page2()
{
InitializeComponent();
list = new List<string> { "1", "2", "3", "4" };
this.BindingContext = this;
}
用法
<local:MyGird BindingContext="{Binding list}"/>