簡體   English   中英

如何使用linq where子句填充xamarin.forms中的listview

[英]How to use linq where clause to fill listview in xamarin.forms

我正在開發一個簡單的項目,我想搜索欄以填寫基於用戶輸入的列表視圖。 但這是顯示的錯誤代碼:

嚴重性代碼描述項目文件行抑制狀態錯誤CS7036:沒有給出對應於所需形式參數“Chiefdom”的參數

在我的sqlitehelper中這是我的任務查詢。

public Task<CommodityList> GetSearchComoditylistAsync(string Chiefdom)
{
    return db.Table<CommodityList>().Where(i => i.Chiefdom == Chiefdom).FirstOrDefaultAsync();
}

在我的cs頁面中,這是我所擁有的:

async void SearchBar_Pressed(object sender, EventArgs e)
{
    var comoList = await App.SQLiteDb.GetSearchComoditylistAsync();
    if (comoList != null)
    {
        lvChiefCommodity.ItemsSource = comoList;
    }
}

我想要的只是當用戶輸入或在搜索欄中輸入內容並點擊回車鍵時,它應根據輸入填充列表視圖。

GetSearchComoditylistAsync有一個必需的參數, Chiefdom

public Task<CommodityList> GetSearchComoditylistAsync(string Chiefdom)
{
    return db.Table<CommodityList>().Where(i => i.Chiefdom == Chiefdom).FirstOrDefaultAsync();
}

但是當你調用它時,你沒有傳遞任何參數

async void SearchBar_Pressed(object sender, EventArgs e)
{
    var comoList = await App.SQLiteDb.GetSearchComoditylistAsync();

你可能想傳入搜索字符串

var search = (SearchBar)sender;
var comoList = await App.SQLiteDb.GetSearchComoditylistAsync(search.Text);

您當前的搜索功能僅返回一個結果。 如果你想要返回更多,

return db.Table<CommodityList>().Where(i => i.Chiefdom.ToUpper().Contains(Chiefdom.ToUpper()).ToListAsync();

public Task> GetItemsNotDoneAsync(string Chiefdom){return db.QueryAsync(“SELECT * FROM CommodityList WHERE Chiefdom =?”,Chiefdom); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM