Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. public class Base {}
  2. public class Derived_1 : Base {}
  3. public class Derived_2 : Base {}
  4. // more descendants...
  5. public class Derived_N : Base {}
  6.  
  7. public class SomeViewModel
  8. {
  9. // available items
  10. public IEnumerable<Derived_N> SomeItems { get; }
  11.  
  12. // currently selected item
  13. public Derived_N SelectedItem { get; set; }
  14.  
  15. // there could be several property pairs as above
  16. }
  17.  
  18. public IEnumerable<Base> ItemsSource
  19. {
  20. get { return (IEnumerable<Base>)GetValue(ItemsSourceProperty); }
  21. set { SetValue(ItemsSourceProperty, value); }
  22. }
  23.  
  24. public static readonly DependencyProperty ItemsSourceProperty =
  25. DependencyProperty.Register("ItemsSource", typeof(IEnumerable<Base>), typeof(BaseSelector), new PropertyMetadata(null));
  26.  
  27. public Base SelectedItem
  28. {
  29. get { return (Base)GetValue(SelectedItemProperty); }
  30. set { SetValue(SelectedItemProperty, value); }
  31. }
  32.  
  33. public static readonly DependencyProperty SelectedItemProperty =
  34. DependencyProperty.Register("SelectedItem", typeof(Base), typeof(BaseSelector), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
  35.  
  36. <myCtrls:BaseSelector ItemsSource="{Binding SomeItems}"
  37. SelectedItem="{Binding SelectedItem}"/>
  38.  
  39. public class DummyConverter : IValueConverter
  40. {
  41. public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  42. {
  43. return value;
  44. }
  45.  
  46. public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  47. {
  48. return value;
  49. }
  50. }
  51.  
  52. <myCtrls:BaseSelector ItemsSource="{Binding SomeItems}"
  53. SelectedItem="{Binding SelectedItem, Converter={StaticResource DummyConverterKey}}"/>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement