MainWindowViewModel.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using System.Collections.ObjectModel;
  3. using System.Linq;
  4. using ReactiveUI;
  5. namespace BindingTest.ViewModels
  6. {
  7. public class MainWindowViewModel : ReactiveObject
  8. {
  9. private string _booleanString = "True";
  10. private string _stringValue = "Simple Binding";
  11. public MainWindowViewModel()
  12. {
  13. Items = new ObservableCollection<TestItem>(
  14. Enumerable.Range(0, 20).Select(x => new TestItem
  15. {
  16. StringValue = "Item " + x
  17. }));
  18. SelectedItems = new ObservableCollection<int> { 4, 6 };
  19. ShuffleItems = ReactiveCommand.Create();
  20. ShuffleItems.Subscribe(_ =>
  21. {
  22. var r = new Random();
  23. Items.Move(r.Next(Items.Count), 1);
  24. });
  25. }
  26. public ObservableCollection<TestItem> Items { get; }
  27. public ObservableCollection<int> SelectedItems { get; }
  28. public ReactiveCommand<object> ShuffleItems { get; }
  29. public string BooleanString
  30. {
  31. get { return _booleanString; }
  32. set { this.RaiseAndSetIfChanged(ref _booleanString, value); }
  33. }
  34. public string StringValue
  35. {
  36. get { return _stringValue; }
  37. set { this.RaiseAndSetIfChanged(ref _stringValue, value); }
  38. }
  39. }
  40. }