gpt4 book ai didi

c# - UWP 最佳使用方式 x :Bind and filter ObservableCollection

转载 作者:行者123 更新时间:2023-12-03 10:42:42 26 4
gpt4 key购买 nike

我有一个 UWP 应用程序。

带有 的 View 枢轴 控制。

一个关联的 ViewModel。

像这样的一个模型:

class Model
{
public int Category { get; set; }
}

在 ViewModel 中,有一个模型“模型”的 ObservableCollection,例如:
public ObservableCollection<Model> models = new ObservableCollection<Model>();

我想在每个模型的枢轴控件中显示模型 按类别 在枢轴项。例如,PivotItem 1 将计入类别 1 的所有模型,PivotItem 2 将计入类别 2 的所有模型,等等...

一个解决方案是为按类别过滤的每个模型创建新的 ObservableCollection,但我认为这个解决方案仍然有点沉重。例如:
public ObservableCollection<Model> modelCategory1 = models.Where(x => x.category == 1) [...]

这就是为什么我想知道是否没有直接从 XAML 过滤的解决方案。

编辑:

在他看来,在 Pivot 中,我有 5 个枢轴项,每个都包含一个 ListView
<Pivot>
<PivotItem>
<ListView ItemsSource="{x:Bind ViewModel.Models}" />
</PivotItem>
<PivotItem>
<ListView ItemsSource="{x:Bind ViewModel.Models}" />
</PivotItem>
<PivotItem>
<ListView ItemsSource="{x:Bind ViewModel.Models}" />
</PivotItem>
<PivotItem>
<ListView ItemsSource="{x:Bind ViewModel.Models}" />
</PivotItem>
<PivotItem>
<ListView ItemsSource="{x:Bind ViewModel.Models}" />
</PivotItem>
</Pivot>

编辑 2:

据此 Can I filter a collection from xaml?这个: [UWP]CollectionViewSource Filter?我无法从 UWP 的 CollectionViewSource 中进行过滤,所以我想我必须创建新的 ObservableCollection 来包含过滤结果,例如:
private ObservableCollection<Model> _modelsCategory1; 
public ObservableCollection<Model> ModelsCategory1
{
get { return _modelsCategory1; }
set { _modelsCategory1= value; NotifyPropertyChanged();
}

和 :
var cat1 = from fobjs in Models 
where fobjs.Category == 1
select fobjs;
ModelsCategory1 = new ObservableCollection<Model>(cat1);

最佳答案

在现有代码中执行此操作以绑定(bind) 分类 ListViewItem 的属性,

<PivotItem>
<ListView ItemsSource="{x:Bind ViewModel.Models}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="data:Model">
<TextBlock Text="{x:Bind Category}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</PivotItem>

关于c# - UWP 最佳使用方式 x :Bind and filter ObservableCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47794479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com