我希望命令的方法位于 ViewModel 類中,但該類沒有找到它并且顯示此錯誤。我該怎么做才能讓它作業
Github:https ://github.com/IagoAntunes/FashionShop/tree/master/LojaRoupas/LojaRoupas
錯誤:沒有為“SearchButtonPressed”找到屬性、BindableProperty 或事件,或者值和屬性之間的型別不匹配
商店.XML
SearchButtonPressed="{Binding PesquisarButton}" TextChanged="{Binding Pesquisar}"
<SearchBar Grid.Column="0" Grid.Row="1" Margin="-5,10,0,10" BackgroundColor="Transparent" SearchButtonPressed="{Binding PesquisarButton}" TextChanged="{Binding Pesquisar}"/>
商店.cs
BindingContext = new ViewModel.ShopViewModel();
SHOPVIEWMODEL.cs
在這里,我有執行該命令的方法
public class ShopViewModel
{
private void PesquisarButton(object sender,EventArgs args)
{
var Resultado = ListaRoupas.Where((b)=>b.Nome.Contains(((SearchBar)sender).Text)).ToList<Roupa>();
Preencher(Resultado);
}
private void Pesquisar(object sender, TextChangedEventArgs args)
{
var Resultado = ListaRoupas.Where((b) => b.Nome.Contains(((SearchBar)sender).Text)).ToList<Roupa>();
Preencher(Resultado);
}
}
obs:我只是展示代碼的基本部分
uj5u.com熱心網友回復:
您需要將文本與 ViewModel 屬性系結,然后當用戶單擊搜索按鈕時,您可以從該屬性中獲取文本。
請參考這個官方檔案
Xamarin.Forms 搜索欄
uj5u.com熱心網友回復:
不確定是否可以更改 SearchButtonPressed 和 TextChanged 的??可系結屬性,因為它們似乎是事件。但如果可以的話,這就是我使用它們的方式。
public class ShopViewModel :INotifyPropertyChanged
{
public Command PesquisarButton => new Command(() =>
{
var Resultado = ListaRoupas.Where((b)=>b.Nome.Contains(Pesquisar).ToList<Roupa>();
Preencher(Resultado);
}
public string Pesquisar{get;set;}
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs((propertyName)));
}
}
如果你不能,你唯一的選擇就是課堂活動。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/420909.html
標籤:
上一篇:InvalidOperationException:沒有具有鍵“marka”的“IEnumerable<SelectListItem>”型別的ViewData項
