コード例 #1
0
        /// <summary>
        /// Saves the videos to the database
        /// </summary>
        /// <param name="videos">Videos being saved</param>
        private void SaveVideos(IEnumerable <Video> videos)
        {
            List <SortDescription> sortDescriptions = new List <SortDescription>(SortDescriptions);

            OnMediaItemsSaved(videos);

            SortDescriptions.Clear();

            foreach (SortDescription sortDescription in sortDescriptions)
            {
                SortDescriptions.Add(sortDescription);
            }

            mivVideos.UpdateLayout();
        }
コード例 #2
0
        /// <summary>
        /// Saves the songs to the database
        /// </summary>
        /// <param name="songs">Songs being saved</param>
        private void SaveSongs(IEnumerable <Song> songs)
        {
            List <SortDescription> sortDescriptions = new List <SortDescription>(SortDescriptions);

            OnMediaItemsSaved(songs);

            SortDescriptions.Clear();

            foreach (SortDescription sortDescription in sortDescriptions)
            {
                SortDescriptions.Add(sortDescription);
            }

            mivSongs.UpdateLayout();
        }
コード例 #3
0
        private void dgMediaItems_ItemsSourceChanged(object sender, System.EventArgs e)
        {
            SortDescriptions.Clear();

            foreach (SortDescription sortDescription in previousSortDescriptions)
            {
                DataGridColumn column = Columns.SingleOrDefault(p => p.SortMemberPath == sortDescription.PropertyName);

                if (column != null)
                {
                    column.SortDirection = sortDescription.Direction;
                }

                SortDescriptions.Add(sortDescription);
            }
        }
コード例 #4
0
        public SortViewModel(ICollectionView source, SortData[] columns, IEnumerable <SortDescription> existing = null,
                             SortData[] requiredColumns = null)
        {
            View             = source;
            Columns          = columns;
            _requiredColumns = requiredColumns ?? new SortData[0];
            if (existing != null)
            {
                var d = View.DeferRefresh();
                SortDescriptions.Clear();
                foreach (var c in _requiredColumns)
                {
                    SortDescriptions.Add(c.ToSortDescription());
                }
                var item = existing
                           .FirstOrDefault(x => Columns.Select(y => y.Value).Contains(x.PropertyName));
                if (item != default(SortDescription))
                {
                    SelectedSort = Columns.First(x => x.Value == item.PropertyName);
                    SelectedSort.SortDirection = item.Direction;
                    SortDescriptions.Add(item);
                }

                d.Dispose();
            }
            else
            {
                var item = SortDescriptions.FirstOrDefault(x => Columns.Select(y => y.Value).Contains(x.PropertyName));
                if (item != default(SortDescription))
                {
                    SelectedSort = Columns.First(x => x.Value == item.PropertyName);
                    SelectedSort.SortDirection = item.Direction;
                }
            }

            OldSelectedSort = SelectedSort;

            this.WhenAnyValue(x => x.SelectedSort)
            .Skip(1)
            .Subscribe(x => SortColumn());
            this.SetCommand(x => x.SortCommand).Subscribe(x => SortColumn());
            this.SetCommand(x => x.ToggleVisibilityCommand).Subscribe(x => ToggleVisibility());
        }
コード例 #5
0
        void SortColumn()
        {
            var data = SelectedSort;
            var d    = View.DeferRefresh();

            _requiredColumns.Select(x => x.ToSortDescription()).SyncCollection(SortDescriptions);

            if (data != null)
            {
                if (OldSelectedSort == data)
                {
                    data.SortDirection = data.SortDirection == ListSortDirection.Ascending
                        ? ListSortDirection.Descending
                        : ListSortDirection.Ascending;
                }
                SortDescriptions.Add(data.ToSortDescription());
            }
            OldSelectedSort = data;

            d.Dispose();
        }