Xamarin列表来操作项目

时间:2018-08-27 08:45:56

标签: xamarin.forms

我是Xamarin表单的新手,正在寻找列出项目的控件。我想使用数据源或不使用数据源添加/删除/更新项目。我想ListView是我想要的。我正在寻找一个选项,可以从后面的代码中添加/删除列表中的项目。到目前为止,我尝试通过以下手动方式进行操作。我将控件命名为“ Lista”,以便能够从后面的代码中对其进行引用。这样,我直接添加了项目,但我想通过使用like后面的代码来填充它。 Lista.Add("something")Lista.Remove("something")仍然没有找到该选项。请提供样品建议。当列表数据来自数据源时,我也将很感激。

 <ListView x:Name="Lista">
            <ListView.ItemsSource>
                <x:Array Type="{x:Type x:String}">
                    <x:String>mono</x:String>
                    <x:String>monodroid</x:String>
                    <x:String>mononucleosis</x:String>
                </x:Array>
            </ListView.ItemsSource>
        </ListView>

奖励问题: 有没有可以处理两列数据的控件?

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

//创建一个可观察的集合

ObservableCollection<your_object_type> observableCollection = new ObservableCollection<your_object_type>();

observableCollection.Add(your_object);

Lista.Itemsource = observableCollection ;

然后,您可以在XAML中使用数据绑定来绑定到your_object具有的这种属性:

<ListView.ItemTemplate>
            <DataTemplate>
                <TextCell Text="{Binding your_object_property1}" Detail="{Binding your_object_property2}"/>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

答案 1 :(得分:0)

为此,有两种可能的方法。首先,将Component10设置为Lista.ItemSource,就像字符串列表一样。然后,每次更改此列表时,都必须“更新” IEnumerable,基本上就是这样:

Lista.ItemSource

我不是这种方法的忠实拥护者,但确实有效。

另一种选择是使用private void RefreshList() { Lista.ItemsSource = null; Lista.ItemsSource = your_list; } (类似于可观察的字符串集合)并将其设置为ObservableCollection

Lista.ItemsSource

然后,每次添加,删除或更新列表时,ListView都会自动更新。那是最好的方法。