我想让一个选择器填充数据,但好像没有一个直截了当的答案。我已经尝试过很多方法,有一种方法可以起作用:
Xaml:
<Picker Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="4"
Title="Driver Name"
ItemsSource="{Binding Drivers}"
SelectedItem="{Binding driverID}"
在视图模型中:
List<string> Drivers = new List<string> { "Steve","Dave" };
这很好用,但实际上只是一个仿真功能,因为将来这些名称将从某种服务中获取。 为了模仿这个,我尝试将此列表分离为一个模拟服务,并将列表返回到视图模型,然后使其工作。
但即使在调试时可以看到列表不为空,仍然无法将其返回到前端。 然后我尝试创建一个驱动程序的类,并返回包含名称的类的实例,并在Xaml中访问它。 但这并没有起作用,我甚至尝试使用IList的一个变化,这也行不通。
我不确定为什么不能按预期工作,因为该列表实际上只是被分隔成了另一个类。例如,现在我正在尝试以下内容:
Xaml:
<Picker Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="4"
Title="Driver Name"
ItemsSource="{Binding Drivers}"
SelectedItem="{Binding driverID}"
/>
视图模型:
这个与选择器绑定
public List<string> Drivers;
然后从构造函数中调用此方法:
public async Task FindDriverNames()
{
Drivers = await GetDriverNames();
}
在模型中:
public async Task<List<string>> GetDriverNames()
{
await Sleep();
List<string> _drivers = new List<string> { "Steve"};
return _drivers;
}
这段代码不起作用,但是在调试时显示Drivers已被填充。我浪费了很多时间来尝试让它工作,有没有人有见解?
Clear
函数 :-) - Stefan