【发布时间】:2018-03-13 08:56:41
【问题描述】:
这是我的代码。
List<DriverStatusViewModel> driverStatus = PopulateDriverStatus();
var selectedStatus = driverStatus.FirstOrDefault();
var picker = new Picker { Title = "Select a status" };
picker.SetBinding(Picker.ItemsSourceProperty, "driverStatus");
picker.SetBinding(Picker.SelectedItemProperty, "selectedStatus");
picker.ItemDisplayBinding = new Binding("Status");
填充列表
private List<DriverStatusViewModel> PopulateDriverStatus()
{
var driverStatus = new List<DriverStatusViewModel>();
var stat1 = new DriverStatusViewModel();
stat1.EnumId = 1;
stat1.Status = "At Lunch";
driverStatus.Add(stat1);
var stat2 = new DriverStatusViewModel();
stat2.EnumId = 2;
stat2.Status = "Break";
driverStatus.Add(stat2);
var stat3 = new DriverStatusViewModel();
stat3.EnumId = 3;
stat3.Status = "Delivering";
driverStatus.Add(stat3);
return driverStatus;
}
用于显示的 Xaml 代码
<Picker Title="Select a status"
ItemsSource="{Binding driverStatus}"
TextColor="Black"
BackgroundColor="Red"
ItemDisplayBinding="{Binding Name}"
SelectedItem="{Binding selectedStatus}" />
我对 Xamarin 很陌生,请帮助我,提前谢谢你。
【问题讨论】:
-
您没有在任何驱动程序上设置 Name 属性?
-
您是否正确设置了 ItemsSource?
-
在您的代码中,您正在创建一个新的选择器,与 XAML 中的选择器不同。您需要在 xaml 中为您的选择器设置一个名称,通过定义
x:Name="myPicker"然后您可以使用myPicker.ItemsSource = driverStatus;从代码中访问 -
driverStatus 应该是带有 getter 和 setter 的属性: List
DriverStatus {get;set;} -
@JoeLv-MSFT 实际上我有不同的方法来解决它。谢谢你的时间和帮助我。真的很感激。
标签: c# xamarin xamarin.forms xamarin.android dropdown