Guest User

Untitled

a guest
Jul 1st, 2016
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. <TreeView ItemsSource="{Binding Nodes}">
  2. <TreeView.ItemTemplate>
  3. <HierarchicalDataTemplate DataType="{x:Type local:INode}" ItemsSource="{Binding Nodes}">
  4. <TextBlock Margin="2" Text="{Binding Path=Name}" />
  5. </HierarchicalDataTemplate>
  6. </TreeView.ItemTemplate>
  7. </TreeView>
  8.  
  9. public class MainViewModel : ViewModelBase
  10. {
  11. #region Private Fields
  12.  
  13. private readonly IDataService _dataService;
  14.  
  15. private INode _selectedNode;
  16.  
  17.  
  18. #endregion Private Fields
  19.  
  20. #region Public Constructors
  21.  
  22. /// <summary>
  23. /// Отправная точка, главная ViewModel.
  24. /// </summary>
  25. public MainViewModel(IDataService dataService)
  26. {
  27. Contract.Assert(dataService != null);
  28. _dataService = dataService;
  29. }
  30.  
  31. #endregion Public Constructors
  32.  
  33. #region Public Properties
  34.  
  35.  
  36. public List<INode> Nodes { get; private set; }
  37.  
  38. public INode SelectedNode
  39. {
  40. get { return _selectedNode; }
  41. set
  42. {
  43. if (_selectedNode != value)
  44. {
  45. _selectedNode = value;
  46. RaisePropertyChanged();
  47. }
  48. }
  49. }
  50.  
  51.  
  52.  
  53. #endregion Public Properties
  54. }
  55.  
  56. public interface INode
  57. {
  58. #region Public Properties
  59.  
  60. string Name { get; }
  61.  
  62. List<INode> Nodes { get; }
  63.  
  64. #endregion Public Properties
  65. }
Add Comment
Please, Sign In to add comment