【问题标题】:Xamarin.Forms: Add items to ListView from codebehind without binding?Xamarin.Forms:将项目从代码隐藏添加到 ListView 而不绑定?
【发布时间】:2019-07-04 07:25:58
【问题描述】:

到目前为止,我已经在我的表单中添加了一个地图和一个带有静态项目的 listview。这就是xaml 的样子:

<StackLayout>
    <StackLayout VerticalOptions="FillAndExpand">
        <maps:Map WidthRequest="960" HeightRequest="200"
        x:Name="MyMap"
        IsShowingUser="true"/>
        <ListView x:Name="ListView_Pets">
            <ListView.ItemsSource>
                <x:Array Type="{x:Type x:String}">
                    <x:String>dog</x:String>
                    <x:String>cat</x:String>
                    <x:String>bird</x:String>
                </x:Array>
            </ListView.ItemsSource>
        </ListView>
    </StackLayout>
</StackLayout>

我想使用简单的foreach 循环来添加它们,而不是静态项。这是循环的样子:

    public MainPage()
    {
        InitializeComponent();

        string[] pets = { "dog", "cat", "bird" };
        foreach (string pet in pets)
        {
            /* Add each pet to ListView */
            //ListView_Pets.ItemsSource.Add(pet); This doesn't build
        }
    }

我正在查看ListView Data Sources,但他们声明了一个集合ObservableCollection,然后我将其绑定到ListView。我不想将我的 ListView 绑定到一个集合;我正在寻找与asp.netsn-p 等效的东西(如果可能的话):

foreach (string name in nameList)
{
    DropDownList_Pets.Items.Add(new ListItem(name));
}

【问题讨论】:

    标签: c# android xamarin xamarin.forms visual-studio-2017


    【解决方案1】:

    只需将您的数组分配给ItemsSource

    string[] pets = { "dog", "cat", "bird" };
    ListView_Pets.ItemsSource = pets;
    

    任何IEnumerable 都可以用作ItemsSource

    【讨论】:

      猜你喜欢
      • 2019-06-07
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2012-01-04
      • 2013-02-19
      相关资源
      最近更新 更多