【问题标题】:Get list of CollectionView return Object and put in IIList of Model in xamarin.form获取 CollectionView 返回对象列表并放入 xamarin.form 中的模型 IIList
【发布时间】:2020-08-14 16:44:27
【问题描述】:

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

我的模特是

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

] 将 CillectionView 绑定到返回视图 Api 的列表,当调试器到达我的更改事件时无法获取数据并放入我的列表中

 [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,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”将为空

【问题讨论】:

    标签: c# xamarin collectionview


    【解决方案1】:

    您可以使用Cast&lt;class&gt; 将列表转换为列表。

    更改:

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

    收件人:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多