Guest User

Untitled

a guest
Jun 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. <Window x:Class="TreeViewSelection.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="MainWindow" Height="350" Width="525">
  5. <Grid>
  6. <Grid.RowDefinitions>
  7. <RowDefinition Height="*"/>
  8. <RowDefinition Height="*"/>
  9. </Grid.RowDefinitions>
  10. <TreeView Name="TV">
  11. <TreeViewItem Header="Привет-привет"/>
  12. <TreeViewItem Header="Пока-пока"/>
  13. <TreeViewItem>
  14. <TreeViewItem Header="Я очень"/>
  15. <TreeViewItem Header="буду ждать">
  16. <TreeViewItem Header="звонка"/>
  17. </TreeViewItem>
  18. </TreeViewItem>
  19. </TreeView>
  20. <TreeView Name="TV2" Grid.Row="1" ItemsSource="{Binding}">
  21. <TreeView.ItemTemplate>
  22. <HierarchicalDataTemplate ItemsSource="{Binding Value}">
  23. <TextBlock Text="{Binding Key}"/>
  24. </HierarchicalDataTemplate>
  25. </TreeView.ItemTemplate>
  26. </TreeView>
  27. </Grid>
  28. </Window>
  29.  
  30. public partial class MainWindow : Window
  31. {
  32. public MainWindow()
  33. {
  34. InitializeComponent();
  35. DataContext = new[]
  36. {
  37. new DataHolder("Привет-привет", null),
  38. new DataHolder("Пока-пока", null),
  39. new DataHolder(null,
  40. new[]
  41. {
  42. new DataHolder("Я очень", null),
  43. new DataHolder("буду ждать",
  44. new[]
  45. {
  46. new DataHolder("звонка", null)
  47. }),
  48. }),
  49. };
  50.  
  51. TreeViewItem selectedItemTV = null;
  52. TV.AddHandler(TreeViewItem.SelectedEvent, (RoutedEventHandler)((sender, args) =>
  53. selectedItemTV = (TreeViewItem)args.OriginalSource));
  54.  
  55. TreeViewItem selectedItemTV2 = null;
  56. TV2.AddHandler(TreeViewItem.SelectedEvent, (RoutedEventHandler)((sender, args) =>
  57. selectedItemTV2 = (TreeViewItem)args.OriginalSource));
  58.  
  59. var dt = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(5) };
  60. dt.Tick += (sender, args) =>
  61. {
  62. if (selectedItemTV != null)
  63. {
  64. selectedItemTV.IsSelected = false;
  65. selectedItemTV = null;
  66. }
  67. if (selectedItemTV2 != null)
  68. {
  69. selectedItemTV2.IsSelected = false;
  70. selectedItemTV2 = null;
  71. }
  72. };
  73. dt.Start();
  74. }
  75. }
  76.  
  77. public class DataHolder
  78. {
  79. public string Key { get; private set; }
  80. public IEnumerable<DataHolder> Value { get; private set; }
  81.  
  82. public DataHolder(string key, IEnumerable<DataHolder> value)
  83. {
  84. Key = key;
  85. Value = value;
  86. }
  87. }
  88.  
  89. ((TreeViewItem)treeView.SelectedItem).IsSelected = false;
Add Comment
Please, Sign In to add comment