c# - 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" });
}
当我调试时,我可以看到我的列表是正确的。
解决方案
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(),
}
推荐阅读
- python - 在类中创建和声明列表
- c# - C# 在 For 循环中按值更改变量名
- c# - 静态字段没有改变?
- c++ - Linux 中的未知类型名称 uint64_t 和 uint16_t uint8_t
- apache-spark - 对 Spark/Graphx/Pregel 示例程序的停止条件感到困惑,以查找“路径距离”
- nativescript - Nativescript Playground:未捕获的错误消息
- bash - 通过 SSH 访问 codeship 上的 github repo
- python - Python 请求:多部分,其中一部分为 json
- javascript - 如何在 window.alert() 中显示无序列表?
- java - jOOQ 在预期 UTC 时使用本地时区设置时间戳