gpt4 book ai didi

c# - 如何在 xamarin 表单中为选择器设置值

转载 作者:行者123 更新时间:2023-11-30 23:01:02 25 4
gpt4 key购买 nike

你好,我正在研究 xamarin 表单 3.0 项目,我正在使用选择器来选择值,并使用它来向选择器显示用户数据。现在我的问题是我无法将用户从数据库中选择的值显示给选择器。请帮助...

代码隐藏

下面是我将数据传递到此页面的页面构造函数

public SummaryDetail(CpDetails cp)
{
InitializeComponent();
if (cp == null)
{
throw new System.ArgumentNullException(nameof(cp));
}
GetLocations();
BindingContext = cp;

pklocation.SelectedIndex = cp.LocationId;
}
public async void GetLocations()
{
var loci = new List<Locations>();
var client = new HttpClient();


var json = await client.GetStringAsync("this is the link from where i am getting other values in picker");
loci = JsonConvert.DeserializeObject<List<Locations>>(json);

pklocation.ItemsSource = loci;
}

Xaml 是

<Picker x:Name="pklocation" Title="Select Location" ItemDisplayBinding="{Binding Name}"/>

最佳答案

pklocation.SelectedIndex = cp.LocationId;这似乎不正确。

SelectedIndex表示集合中位于 ItemsSource 中的索引.它不会神奇地知道选择哪个 Id。因此,您需要找出列表中所选对象的索引并设置 SelectedIndex到那个。但可能更容易的是设置 SelectedItem : pklocation.SelectedItem = cp;

如果这不起作用,试试这个:

pklocation.SelectedItem = ((List<Locations>)pklocation.ItemsSource).FirstOrDefault(c => c.LocationId == cp.LocationId);

不过我会建议保存 loci在更全局的层面上变量,所以你可以从你的 GetLocations 中引用它方法。

有关 Microsoft 文档的更多信息:https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/picker/

关于c# - 如何在 xamarin 表单中为选择器设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51272706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com