public MainWindow() { InitializeComponent(); var items = new List <string>() { "item 1", "item 2" }; RegItems.AddRange(items); SourceCache.AddOrUpdate(items); _sorter = new Sorter(); var sortControlChanged = _sorter.WhenAnyPropertyChanged(); var sorter = sortControlChanged .StartWith(_sorter); var loader = SourceCache .Connect() .Sort(sorter) .ObserveOnDispatcher() .Bind(DdItems) //Populate the observable collection .DisposeMany() //Dispose TradeProxy when no longer required .Subscribe(); DataContext = this; }
private void ButtonBase_OnClick(object sender, RoutedEventArgs e) { var button = (Button)sender; _sortedAscending = !_sortedAscending; RegItems.Sort(_sortedAscending); _sorter.SortAscending = !_sorter.SortAscending; if (_sortedAscending) { button.Content = "Sorted Ascending"; } else { button.Content = "Sorted Descending"; } }