UWP 애플리케이션이 있습니다.UWP를 사용하는 가장 좋은 방법은 x : ObservableCollection을 바인드하고 필터링하십시오.
피벗 컨트롤이있는 하나의보기.
하나의 연관된 ViewModel. 이 같은
한 모델 :
public ObservableCollection<Model> models = new ObservableCollection<Model>();
나는 각 모델에 피벗 컨트롤의 모델을 표시하려면 :
class Model
{
public int Category { get; set; }
}
뷰 모델에서, 같은 모델 "모델"의 ObservableCollection에있다 카테고리로 in pivotitem. 예를 들어, PivotItem 1은 카테고리 1을 가진 모든 모델을 카운트 할 것이고 PivotItem 2는 카테고리 2를 가진 모든 모델을 카운트 할 것입니다 ...
솔루션은 카테고리별로 필터링 된 각 모델에 대해 새로운 ObservableCollection을 만드는 것이지만이 솔루션은 내 의견으로는별로. 예를 들어 수행합니다
public ObservableCollection<Model> modelCategory1 = models.Where(x => x.category == 1) [...]
가 그 필터링 할 XAML에서 직접 해결책이 아니었다면 내가 궁금 이유. 이 Can I filter a collection from xaml?이 따르면
:
EDIT 그가보기에서
는, 피벗, 난이 5 pivotitems 각각 포함하는 하나의 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>
EDIT 2 [UWP]CollectionViewSource Filter? 난 수 UWP에서 CollectionViewSource에서 t 필터, 그래서 같은 필터 결과를 포함 할 것입니다 새로운 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);
당신은 데이터 바인딩을 사용하는 경우 다른 속성을해야합니다 당신의 바인딩 할 피벗 헤더의 모델 클래스입니다. –
UI 파트를 편집하기 위해 편집했습니다. – ArthurCPPCLI