2016-11-23 54 views
0

我想獲得一個ListView與數據庫中的每個項目的名稱,但我回來的是全表名稱。如果可能的話,我想使用相同的功能在稍後獲取id等其他信息。如果需要更多信息,請問我。使用函數從sqlite數據庫中獲取指定的數據?

這是我的代碼:

調用該函數:

var categories = App.Database.GetCategoryByMenuID(1); 
listView.ItemsSource = categories; 

功能:

public List<Categories> GetCategoryByMenuID(int menuID) 
{ 
    return db.Table<Categories>().Where(x => x.Menu_ID == menuID).ToList(); 
} 

表:

public class Categories 
{ 
    public Categories() 
    { 
    } 

    [PrimaryKey, AutoIncrement] 
    public int ID { get; set; } 
    public int Menu_ID { get; set; } 
    public string Name { get; set; } 
} 

預先感謝您,

+0

'GetCategoryByMenuID'的返回trype是'List ',它如何返回'完整的表名'? – tchelidze

回答

1

您的var類是一個列表填充多個類別。 ListView在每一行打印對象的名稱,即:類別。

您應該創建自己的數據模板,以打印每個「類別」的屬性名稱。

聲明自己的DataTemplate這樣的:

var datatemplate = new DataTemplate(() => 
{ 
    var nameLabel = new Label(); 
    nameLabel.SetBinding(Label.TextProperty, "Name"); 

    return new ViewCell { View = nameLabel }; 
} 

接下來使用DataTemplate中顯示的類別名稱。像這樣實例化你的ListView:

var listView = new ListView 
{ 
    ItemsSource = categories, 
    ItemTemplate = datatemplate 
} 

然後你的ListView將顯示名稱。

+0

使用你的代碼後,我得到這個錯誤:System.ArgumentNullException:值不能爲空。 參數名稱:item。 。 –

+1

nvm我做了一個愚蠢的錯誤,它的工作感謝人 –

相關問題