public GroupUserControl() { InitializeComponent(); var changeSet = GenerateChangeSet(); Combobox1.SelectAddChanges().StartWith(new[] { Combobox1.SelectedItem } as IList).Subscribe(a => { var @switch = a.Cast <ComboBoxItem>().First().Content.ToString() switch { "A" => new GroupMasterViewModel <Stock, string, string>(changeSet, g => g.Sector).Collection, "B" => new GroupMasterViewModel2(changeSet.Group(g => g.Name.Length.ToString())).Collection, _ => (IEnumerable)CollectStocks(changeSet) }; ListBox1.ItemsSource = @switch; }); //var stocks = Finance.Stocks.Select(a => new StockPropertyChanged { Sector = a.Sector, Name = a.Name, Key = a.Key }); var sad = GenerateChangeSet2().RefCount(); _ = sad.Subscribe(a => { }, () => { this.Dispatcher.Invoke(() => CompletedLabel.Content = "Observer OnCompleted method called - unable to modify grouping list hence"); }); ListBox2.ItemsSource = new GroupMasterPropertyChangedViewModel <StockPropertyChanged, string, string>(sad, g => g.GroupProperty).Collection; ListBox3.ItemsSource = new GroupMasterPropertyChangedViewModel <StockPropertyChanged, string, string>(GenerateChangeSet4(), g => g.GroupProperty).Collection; Emoticon_ToggleButton.Checked += (a, b) => subject.OnNext(Emoticon_ToggleButton.IsChecked.Value); Emoticon_ToggleButton.Unchecked += (a, b) => subject.OnNext(Emoticon_ToggleButton.IsChecked.Value);
public GroupUserControl() { InitializeComponent(); var groupUserControlViewModel = new GroupUserControlViewModel(); Combobox1.ItemsSource = groupUserControlViewModel.Types; _ = Combobox1 .SelectSelectionAddChanges() .Select(a => a.First().ToString()) .Subscribe(a => { groupUserControlViewModel.OnNext(a); }); _ = ComboBox .SelectSelectionAddChanges() .Select(a => a.Cast <ClassProperty>().First()) .Subscribe(a => { subject.OnNext(a); }); groupUserControlViewModel.WhenAnyValue(a => a.Collection) .BindTo(this, a => a.ListBox1.ItemsSource); var group2UserControlViewModel = new Group2UserControlViewModel(subject); group2UserControlViewModel.WhenAnyValue(a => a.ErrorMessage) .ObserveOnDispatcher() .Subscribe(a => CompletedLabel.Content = a); ListBox2.ItemsSource = group2UserControlViewModel.Collection; var group3UserControlViewModel = StockObservableFactory.GenerateUnlimitedGroupableChangeSet(subject).ToGroupOnViewModel(); ListBox3.ItemsSource = group3UserControlViewModel.Collection; ComboBox.ItemsSource = group3UserControlViewModel.Properties; }