在Xamarin Forms中,我有一个列表视图,显示项目表的所有项目。我只想显示已批准“状态”的项目。我怎样才能做到这一点?我在哪里通过'where status ='approved''条件。
这是我的XAML代码:
<ViewModels:ItemViewModel/>
</ContentPage.BindingContext>
<ListView ItemsSource="{Binding ItemsList}"
HasUnevenRows="True"
x:Name="lstItems"
ItemTapped="LstItems_OnItemTapped">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding ItemCode}" TextColor="Blue"/>
<Label Text="{Binding ItemDesc}" TextColor="Blue"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我的观看模型如下:
命名空间MyFirstDbApp.ViewModels { 公共类ItemViewModel:INotifyPropertyChanged { 私人列表_itemsList;
public List<Item> ItemsList
{
get { return _itemsList; }
set
{
_itemsList = value;
OnPropertyChanged();
}
}
public ItemViewModel()
{
InitializeDataAsync();
}
private async Task InitializeDataAsync()
{
var ItemServices = new ItemServices();
ItemsList = await ItemServices.GetItemsAsync();
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
实施新代码的错误:
var result = await ItemServices.GetItemsAsync()。ConfigureAwait(); ItemsList = result.Where(x =&gt; x.Status ==“已批准”
行:1 - 非静态字段,方法或属性需要对象引用ItemServices.GetItemsAsync
行:1 - 没有方法的重载'ConfigureAwait'需要0个argurments
行:2 - 无法将SourceType'Systems.Collection.Generic.IEnumerable'转换为目标类型'系统。 Colelction.GenericList'
答案 0 :(得分:0)
应在ViewModel中的ItemsList上进行过滤,而不是在XAML中。
_viewModel.ItemsList.Where(x => x.Status == "Approved");
祝你好运: - )