我有一个选择器,它可以吸引客户。我想更新从数据库中保存的内容。
这是我的应用逻辑:
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>
答案 0 :(得分:1)
您需要将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可以用于此目的,并且很容易使用。