MainWindowViewModel.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  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 _simpleBinding = "Simple Binding";
  9. public MainWindowViewModel()
  10. {
  11. Items = new ObservableCollection<TestItem>
  12. {
  13. new TestItem { StringValue = "Foo" },
  14. new TestItem { StringValue = "Bar" },
  15. new TestItem { StringValue = "Baz" },
  16. };
  17. ShuffleItems = ReactiveCommand.Create();
  18. ShuffleItems.Subscribe(_ =>
  19. {
  20. var r = new Random();
  21. Items[r.Next(Items.Count)] = Items[r.Next(Items.Count)];
  22. });
  23. }
  24. public ObservableCollection<TestItem> Items { get; }
  25. public ReactiveCommand<object> ShuffleItems { get; }
  26. public string SimpleBinding
  27. {
  28. get { return _simpleBinding; }
  29. set { this.RaiseAndSetIfChanged(ref _simpleBinding, value); }
  30. }
  31. }
  32. }