MainWindowViewModel.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Collections.ObjectModel;
  3. using ReactiveUI;
  4. namespace BindingTest.ViewModels
  5. {
  6. public class MainWindowViewModel : ReactiveObject
  7. {
  8. private string _booleanString = "True";
  9. private double _doubleValue = 5.0;
  10. private string _stringValue = "Simple Binding";
  11. public MainWindowViewModel()
  12. {
  13. Items = new ObservableCollection<TestItem>
  14. {
  15. new TestItem { StringValue = "Foo" },
  16. new TestItem { StringValue = "Bar" },
  17. new TestItem { StringValue = "Baz" },
  18. };
  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 ReactiveCommand<object> ShuffleItems { get; }
  28. public string BooleanString
  29. {
  30. get { return _booleanString; }
  31. set { this.RaiseAndSetIfChanged(ref _booleanString, value); }
  32. }
  33. public double DoubleValue
  34. {
  35. get { return _doubleValue; }
  36. set { this.RaiseAndSetIfChanged(ref _doubleValue, value); }
  37. }
  38. public string StringValue
  39. {
  40. get { return _stringValue; }
  41. set { this.RaiseAndSetIfChanged(ref _stringValue, value); }
  42. }
  43. }
  44. }