aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.SharedUI/Converters/ObservableCollectionToViewSourceConverter.cs
blob: a2363575a32e2cfef002c7e8c772fa3a180891f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
public class ObservableCollectionToViewSourceConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { String sortMember = parameter != null ? parameter.ToString() : null; IList list = value as IList; if (list != null) { var view = CollectionViewSource.GetDefaultView(list); view.SortDescriptions.Clear(); //Delay because the DataGrid clears the sort description after source change. Task.Factory.StartNew(() => { Thread.Sleep(10); Application.Current.Dispatcher.BeginInvoke(new Action(() => { view.SortDescriptions.Add(new SortDescription(sortMember, ListSortDirection.Ascending)); view.Refresh(); })); }); return view; } return value; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }