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