![](/img/trans.png)
[英]ListView items not completely loading from SQLite database [Xamarin.Forms]
[英]Xamarin.Forms : display value of a field from a sqlite database in a picker
在此處輸入圖像描述我的 Xamarin.Forms 應用程序將數據存儲在 sqlite 數據庫中。 在這個數據庫中,我有一個 Article 表,定義如下:
public class Article
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
public string NomCat { get; set; }
public string UniteMesure { get; set; }
public string Note { get; set; }
public byte[] ImageArt { get; set; }
}
當用戶修改一篇文章時,我會顯示不同的字段,以便用戶可以修改它們。 在創建時在選擇器中輸入了 2 個字段(NomCat 和 Unitemesure)。 我希望當頁面打開以修改文章時,選擇器顯示表中包含的值。 目前,選擇器輸入字段為空,而所有其他字段通過綁定正確顯示。 如果我用數組定義 xaml 代碼中的 Picker.ItemsSource ,則顯示該字段的值:
<Picker x:Name="pickerCat"
Title="choisissez une catégorie"
SelectedItem="{Binding NomCat}">
<Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Fruits</x:String>
<x:String>Légumes</x:String>
<x:String>Crèmerie</x:String>
<x:String>Charcuterie</x:String>
</x:Array>
</Picker.ItemsSource>
</Picker>
如果表是在后面的代碼中定義的,則什么也不顯示:
List<string> pkListCat = new List<string>();
foreach (var item in DB_CategorieList_Sorted)
{
string element = item.NomCat;
pkListCat.Add(element);
}
pickerListCat = pkListCat.ToArray();
pickerCat.ItemsSource = pickerListCat;
我已經搜索了很長時間,但我什么也沒找到。 我犯了錯誤還是 xamarin.forms 有問題? 感謝任何可以幫助我的人。
我可能在 BindingContext 中犯了一個錯誤,但我找到了解決該問題的方法。 我刪除了 xaml 代碼中的綁定:
<Picker x:Name="pickerCat" SelectedIndexChanged="pickerCat_SelectedIndexChanged">
我在后面的代碼中添加了幾行:
if (_article.NomCat == null)
{
pickerCat.Title = "choisissez une catégorie";
pickerCat.TitleColor = Color.Gray;
}
else
{
pickerCat.Title = _article.NomCat;
pickerCat.TitleColor = Color.Black;
}
string[] pickerListCat;
List<string> pkListCat = new List<string>();
foreach (var item in DB_CategorieList_Sorted)
{
string element = item.NomCat;
pkListCat.Add(element);
}
pickerListCat = pkListCat.ToArray();
pickerCat.ItemsSource = pickerListCat;
private void pickerCat_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedItem = (string)pickerCat.SelectedItem;
if (_article != null)
_article.NomCat = selectedItem;
}
現在它工作得很好:讀取表格中的元素后,字段的值顯示在選擇器中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.