예제 #1
0
        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;
        }
예제 #2
0
        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";
            }
        }