/// <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(); }
/// <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(); }
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); } }
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()); }
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(); }