1 private void Init() 2 { 3 TreeViewItem tvi_0 = new TreeViewItem(); 4 5 CheckBox cb = new CheckBox(); 6 cb.Content = "所有"; 7 cb.Checked += new RoutedEventHandler((sender, e) =>{foreach (TreeViewItem item in tvi_0.Items){((item.Header as StackPanel).Children[0] as CheckBox).IsChecked = true;}}); 8 cb.Unchecked += new RoutedEventHandler((sender, e) =>{foreach (TreeViewItem item in tvi_0.Items){((item.Header as StackPanel).Children[0] as CheckBox).IsChecked = false;}}); 9 10 StackPanel sp = new StackPanel(); 11 sp.Children.Add(cb); 12 13 tvi_0.Name = "0"; 14 tvi_0.Header=sp;//关键就是在 这个 Header 15 tvi_0.IsExpanded = true; 16 17 treeview_1.Items.Add(tvi_0); 18 19 TreeViewItem tviTmp = null; 20 StackPanel sptmp = null; 21 CheckBox cbtmp = null; 22 for (int i = 0; i < 10; i++) 23 { 24 tviTmp = new TreeViewItem(); 25 sptmp = new StackPanel(); 26 cbtmp = new CheckBox(); 27 28 tviTmp.Name = "tviTmp"+i.ToString(); 29 cbtmp.Name = "cbtmp"+i.ToString(); 30 sptmp.Name = "sptmp"+i.ToString(); 31 32 cbtmp.Content = "CheckBox" + i.ToString(); 33 sptmp.Children.Add(cbtmp); 34 tviTmp.Header = sptmp; 35 tvi_0.Items.Add(tviTmp); 36 } 37 }