1 private void Init () 2 {3 TreeViewItem tvi_0 = new TreeViewItem (); 4 5 CheckBox cb = new CheckBox (); 6 cb. content = "all"; 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; // The key is in this 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}