Xamarin如何将选择器值发送到列表

时间:2018-11-29 10:24:35

标签: xamarin

我正在尝试将用户选择的选择器值发送到列表。该列表应继续添加用户选择的内容,而不是删除前一个。有关如何执行此操作的任何提示?

 private void MainPicker_SelectedIndexChanged(object sender, EventArgs e)
        {

             var product = MainPicker.Items[MainPicker.SelectedIndex];
             DisplayAlert(product, "Layer added to calculation list", "OK");

        }
 private void ListView_ItemSelected(object sender,SelectedItemChangedEventArgs e)
        {
            if (e.SelectedItem == null)
           // if selected add to list?

        }

1 个答案:

答案 0 :(得分:5)

我相信您的问题是关于将选择器中的选定项添加到列表视图,该列表视图会根据选择器的选择不断添加。

您可以将以下代码作为类中的公共对象进行操作。

ObservableCollection<LayersClass> listProducts = new ObservableCollection<LayersClass>(); 

然后获取选定的选择器项目。假设输出对象和收集对象的类型相同。

var product = MainPicker.Items[MainPicker.SelectedIndex];
if(null != product)
{
   LayersClass layer = new LayersClass();
   layer.Product = product;
   listProducts.Add(layer);
}

列表视图的XAML更改-您需要在具有您的listview子项的DataTemplate下面添加ViewCell标记

<ListView  
                  x:Name="productsListView"
                  HasUnevenRows="False" 
                  HorizontalOptions="FillAndExpand"
                  VerticalOptions="FillAndExpand" 
                  BackgroundColor="White" >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout>
                            <Label Text="{Binding Product}"></Label>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

我已经在DataTemplate标签中添加了ViewCell。