繁体   English   中英

如何在Xamarin.Forms中设置选择器的选定项?

[英]How to set picker's selected item in Xamarin.Forms?

我有一个选择器,可以获得客户。 我想更新我从数据库中保存的内容。

这是我的app逻辑:
1.用户将选择一个客户插座
2.用户将保存所选插座
3.用户可以选择更新用户选择的内容4.加载页面后,将加载选取器上的客户插座,用户保存的内容将成为该项目。

我怎样才能做到这一点?

这是我的代码:

这是我如何加载所有插座:

var db = DependencyService.Get<ISQLiteDB>();
var conn = db.GetConnection();

var getCode = conn.QueryAsync<ContactsTable>("SELECT * FROM tblContacts LEFT OUTER JOIN tblCustomerMember ON tblCustomerMember.CustomerID = tblContacts.ContactID WHERE CustomerID = ? AND tblCustomerMember.Deleted !='1'", lblCustomer.Text);
var resultCount = getCode.Result.Count;
if (resultCount > 0)
{
   var result = getCode.Result;
   pckOutlet.ItemsSource = result;
}
else
{
    pckOutlet.IsEnabled = false;
}

这是我的XAML:

<Picker x:Name="pckOutlet" Focused="PckOutlet_Focused" SelectedIndexChanged="PckOutlet_SelectedIndexChanged" ItemDisplayBinding="{Binding DisplayText}" StyleClass="formcontrol" IsEnabled="False">
     <Picker.FontFamily>
          <OnPlatform x:TypeArguments="x:String">
               <On Platform="Android" Value="SFProDisplay-Regular.ttf#SFProDisplay-Regular"/>
              </OnPlatform>
      </Picker.FontFamily>
</Picker>

您需要将SelectedItem属性设置为先前选择的项目。

if (resultCount > 0)
{
   var result = getCode.Result;
   pckOutlet.ItemsSource = result;
   pckOutlet.SelectedItem = result.First(outlet => outlet.Id == *PREVIOUSLY_SELECTED_ID*)
}

您可能需要将以前选择的ID存储在应用程序重置的位置。 Xamarin.Essentials.SecureStorage或Xamarin.Essentials.Preferences可用于此,并且非常直接使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM