Listview Xamarin表单列表视图设计

Listview Xamarin表单列表视图设计,listview,mobile,xamarin.forms,Listview,Mobile,Xamarin.forms,我怎样才能做到以下几点,这是一个包含许多项目的列表。但挑战是用以下设计将每个项目添加到buble中 有什么想法吗 正如Jason所说,FlexLayout是一个好方法。如果您想为按钮添加圆角,可以使用BorderRadius属性 Xaml: 更新: Xaml: xaml.cs public partial class MainPage : ContentPage { public List<Values> List { get; set; } public Main

我怎样才能做到以下几点,这是一个包含许多项目的列表。但挑战是用以下设计将每个项目添加到buble中

有什么想法吗


正如Jason所说,FlexLayout是一个好方法。如果您想为按钮添加圆角,可以使用BorderRadius属性

Xaml:

更新:

Xaml:

xaml.cs

public partial class MainPage : ContentPage
{

    public List<Values> List { get; set; }
    public MainPage()
    {
        InitializeComponent();

        List = new List<Values>()
        {
             new Values(){ Value="WIFI"},
             new Values(){ Value="PROJECTOR"},
             new Values(){ Value="APPLE TV"},
             new Values(){ Value="COUCH"},
             new Values(){ Value="WHITEBOARD"},
             new Values(){ Value="CONFERENCE BRIDGE"},
        };
        BindingContext = this;

    }
}
public class Values
{
    public string Value { get; set; }
}

FlexLayout-我想您必须使用自定义渲染器-我可以在FlexLayout中添加ItemsSource={Binding Values}吗?因为text=将来自一个列表,我已经更新了我的回复。如果你想在flexlayout中使用绑定,我们可以使用一个可绑定的flexlayout。我如何替换BindableLayout.ItemsSource={binding List}。我在页面后面有列表数据-我可以关联一个x:name=whatever,但它不会像whatever一样工作。itemsource=mylistdata?
  <ContentPage.Resources>
    <Style TargetType="FlexLayout">
        <Setter Property="AlignItems" Value="Start" />
        <Setter Property="Direction" Value="Row" />
        <Setter Property="Wrap" Value="Wrap" />
        <Setter Property="AlignContent" Value="Start" />
    </Style>
    <Style TargetType="Button">
        <Setter Property="BackgroundColor" Value="Blue" />
        <Setter Property="TextColor" Value="White" />
        <Setter Property="Margin" Value="5" />
    </Style>
</ContentPage.Resources> 
<FlexLayout BindableLayout.ItemsSource="{Binding List}">
    <BindableLayout.ItemTemplate>
        <DataTemplate>
            <Button BorderRadius="25" Text="{Binding Value}" />
        </DataTemplate>
    </BindableLayout.ItemTemplate>
</FlexLayout>
public partial class MainPage : ContentPage
{

    public List<Values> List { get; set; }
    public MainPage()
    {
        InitializeComponent();

        List = new List<Values>()
        {
             new Values(){ Value="WIFI"},
             new Values(){ Value="PROJECTOR"},
             new Values(){ Value="APPLE TV"},
             new Values(){ Value="COUCH"},
             new Values(){ Value="WHITEBOARD"},
             new Values(){ Value="CONFERENCE BRIDGE"},
        };
        BindingContext = this;

    }
}
public class Values
{
    public string Value { get; set; }
}