2016-11-23 57 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我做了一个愚蠢的错误,它的工作感谢人 –

相关问题