簡體   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