private static void AttachPaginator(IPaginator paginator, DataGrid dataGrid)
        {
            var subscription = new SingleAssignmentDisposable();

            SetPaginatorSubscription(dataGrid, subscription);

            var onPropertyChanged =
                new PropertyChangedEventHandler((sender, e) => UpdateByPaginator(dataGrid));

            dataGrid.ItemsSource       = paginator.CreateReactiveList();
            dataGrid.Sorting          += OnDataGridSorting;
            paginator.PropertyChanged += onPropertyChanged;

            subscription.Disposable = Disposable.Create(() =>
            {
                dataGrid.ItemsSource       = Array.Empty <object>();
                dataGrid.Sorting          -= OnDataGridSorting;
                paginator.PropertyChanged -= onPropertyChanged;
            });

            UpdateByPaginator(dataGrid);
        }