code_junkie

Silverlight Databinding - Binding a ValueConverter to a property on a view-model

Nov 13th, 2011
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. <UserControl.Resources>
  2. <local:ViewModel x:Name="viewModel" />
  3. <local:LoadChildrenValueConverter x:Name="valueConverter" />
  4. </UserControl.Resources>
  5.  
  6. <UserControl.DataContext>
  7. <Binding Source="{StaticResource viewModel}" />
  8. </UserControl.DataContext>
  9.  
  10. <Grid x:Name="LayoutRoot" Background="White">
  11. <control:TreeView ItemsSource="{Binding Root}">
  12. <control:TreeView.ItemTemplate>
  13. <control:HierarchicalDataTemplate ItemsSource="{Binding Converter={StaticResource valueConverter}}">
  14. <TextBlock Text="{Binding}" />
  15. </control:HierarchicalDataTemplate>
  16. </control:TreeView.ItemTemplate>
  17. </control:TreeView>
  18. </Grid>
  19.  
  20. <control:HierarchicalDataTemplate ItemsSource="{???}"
  21.  
  22. <control:HierarchicalDataTemplate ItemsSource="{???}"
  23.  
  24. public class ViewModel
  25. {
  26. public ObservableCollection Root { get; set: }
  27.  
  28. public ObservableCollection Children
  29. {
  30. get { /* return children items */ }
  31. }
  32. }
  33.  
  34. <control:HierarchicalDataTemplate ItemsSource="{Binding Children}">
  35.  
  36. public class ViewModel : IValueConverter
  37. {
  38. public static readonly IValueConverter ChildrenConverter
  39. = new LoadChildrenValueConverter();
  40. }
  41.  
  42. <control:HierarchicalDataTemplate
  43. ItemsSource="{Binding Converter={x:Static local:ViewModel.ChildrenConverter}}">
  44.  
  45. public class ViewModel : IValueConverter
  46. {
  47. // move your Convert and ConvertBack methods into here
  48. }
  49.  
  50. <control:HierarchicalDataTemplate
  51. ItemsSource="{Binding Converter={StaticResource ViewModel}}">
Add Comment
Please, Sign In to add comment