SfDataPager如果我操纵它,将停止显示源集合。 (源集合异步填充)

问题描述 投票:0回答:1

数据分页器和显示收集的数据网格的XAML:

        <syncfusion:SfDataGrid ItemsSource="{Binding ElementName=dataPager,Path=PagedSource}" 
                               ColumnSizer="Auto"/>
        <syncfusion:SfDataPager x:Name="dataPager"
                                Source="{Binding Orders,IsAsync=True}"
                                PageSize="30"
                                HorizontalAlignment="Center"/>

当我在搜索框中写一些东西时,我有搜索框。我的收藏集与我在搜索框中写的文本有关的信息已被过滤。

    SourceList<Order> ordersList;

    public JournalViewModel(NorthwindContext northwindContext)
    {
        ordersList = new SourceList<Order>();

        //Filling of Orders collection
        ordersList.Connect().
            ObserveOnDispatcher().
            Bind(out _ordersList).
            Subscribe();

        //When I write something in the search box this code runs
        this.WhenAnyValue(x => x.SearchTerm).
            Subscribe(newSearchTerm =>
            {
                if (string.IsNullOrEmpty(newSearchTerm))
                {
                    //Logic of reloading collection
                }
                else
                {
                    //Logic of filtering collection
                }
            });
      }

      //Source property of Text property of search box
      public string SearchTerm
      {
          get { return _searchTerm; }
          set { this.RaiseAndSetIfChan ged(ref _searchTerm, value); }
      }

      ReadOnlyObservableCollection<Order> _ordersList;
      public ReadOnlyObservableCollection<Order> Orders => _ordersList;

因此,每次操作我的收藏集时,数据寻呼机都会停止显示我的收藏集。为什么会发生这种情况,以及如何使数据寻呼机显示过滤后的集合?

可能有用:最初,我无法显示集合本身,因为我的集合是通过响应请求填充的。我已经通过将绑定的IsAsync属性设置为true解决了此问题。

EDIT 16.03.2020:例如,如果我需要清除保留830个项目的集合,然后用新项目填充它,则我使用DynamicData的ClearAddRange方法,SfDataPager不显示过滤的集合。但是,如果我使用foreach构造:

            foreach (var order in currentList)
                ordersList.Remove(order);

            foreach (var order in newList)
                ordersList.Add(order);

数据传呼机显示过滤后的集合。为什么会发生这种情况?

c# wpf reactive-programming reactiveui syncfusion
1个回答
0
投票

我们已经用SfDataPager检查了所报告的问题,但是很遗憾,我们无法复制所报告的问题。从我们的角度来看一切正常。请参考以下示例。

© www.soinside.com 2019 - 2024. All rights reserved.