【发布时间】:2017-04-17 00:00:56
【问题描述】:
在 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 结果 = 等待 ItemServices.GetItemsAsync().ConfigureAwait(); ItemsList = result.Where(x => x.Status == "已批准"
Line:1 - 非静态字段、方法或属性 ItemServices.GetItemsAsync 需要对象引用
Line:1-“ConfigureAwait”方法没有重载需要 0 个参数
行:2-无法将 SourceType 'Systems.Collection.Generic.IEnumerable' 转换为目标类型 'System. 集合.GenericList '
【问题讨论】:
-
只需根据您的条件过滤列表。你试过什么?向我们展示您的代码。
-
我已在问题本身中添加了我的 xaml 代码。这会将我的 sql 中的所有项目返回到列表视图。我只想有条件地在列表视图中显示几个项目。我如何以及在哪里通过条件?
标签: xamarin