获取CollectionView返回对象的列表,并在xamarin.form

问题描述

在Xamarin中,尝试获取collectionView中的项目列表

我的模特是

   public class DrugModel
{
    public string Name { get; set; }
    public bool IsUsed { get; set; }
    public int NumberUsed { get; set; }
}

]将CillectionView绑定到Returview Api的列表,并且当调试器到达我的change事件时,无法获取数据并将其放在我的列表中

 [XamlCompilation(XamlCompilationOptions.Compile)]
public partial class DrugMissionPage : ContentPage
{
  
    public IList<DrugModel> SelectedDrug;

    public DrugMissionPage()
    {
        InitializeComponent();

    }

    private void listDrug_SelectionChanged(object sender,SelectionChangedEventArgs e)
    {
        var  selectedDrugList =e.CurrentSelection ;
        var tyy = selectedDrugList.ToList() as IList<DrugModel>;

        foreach (var item in selectedDrugList)
        {
            SelectedDrug.Add(item);
        }
    }

这是我的观点

 <CollectionView                  
          x:Name="listDrug"
            VerticalOptions="StartAndExpand"
        SelectionMode="Multiple"
            ItemsLayout="VerticalList" SelectionChanged="listDrug_SelectionChanged">
        <CollectionView.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="10*"></ColumnDefinition>
                        <ColumnDefinition Width="2*"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <Frame Padding="10">
                        <Frame BackgroundColor="AliceBlue"  HasShadow="True" CornerRadius="10" Padding="10" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
                            <StackLayout Orientation="Horizontal">
                                <Label Text="{Binding Name}" FontSize="Default" HorizontalOptions="StartAndExpand" Grid.Row="0" Grid.Column="0" Margin="0,10,0"></Label>
                               
                            </StackLayout>
                        </Frame>
                    </Frame>
                </Grid>
            </DataTemplate>
        </CollectionView.ItemTemplate>

    </CollectionView>

}

我该如何填充

 public IList<DrugModel> SelectedDrug; 

调试器通过时

        var tyy = selectedDrugList.ToList() as IList<DrugModel>;

    foreach (var item in selectedDrugList)
    {
        SelectedDrug.Add(item);
    }

“ tyy” 将为空

解决方法

您可以使用Cast<class>将列表转换为列表。

更改:

var tyy = selectedDrugList.ToList() as IList<DrugModel>;

收件人:

 var tyy = selectedDrugList.Cast<DrugModel>();

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...