首页 > 解决方案 > Xamarin.Forms Picker ItemsSource 在 XAML 中保持为空

问题描述

我的选择器是空的。我已经创建了一个测试列表来特别测试它,但它也不起作用。

这是我的 XAML

<Picker x:Name="picker1" Grid.Row="1" Grid.Column="1" ItemsSource="{Binding TestList}" ItemDisplayBinding="{Binding Name}" SelectedItem="{Binding AdditionSort}"/>

这是我背后的代码

List<AdditionSort> TestList
{
    get => testList;
    set => SetValue(ref testList, value);
}

List<AdditionSort> testList = new List<AdditionSort>();

void LoadList()
{
    TestList.Add(new AdditionSort { Name = "test1" });
    TestList.Add(new AdditionSort { Name = "test2" });
}

当我调试时,我可以看到我的列表是正确的。

标签: c#xamlmvvmxamarin.forms

解决方案


1)使用System.Generics.ObjectModel.ObservableCollection代替List

ObservableCollection在 CollectionChanges 上通知 View,而 List 不这样做。

(或者)

2)在List初始化时将项目添加到List

List<AdditionSort> testList = new List<AdditionSort>()
{
    new AdditionSort(),
    new AdditionSort(),
    new AdditionSort(),
    new AdditionSort(),
}

推荐阅读