WPF后台生成datatemplate(TreeViewItem例子)

public void loadCheckListDataTemplate(TreeViewItem tvi)

        {

            DataTemplate cdt = new DataTemplate();

            FrameworkElementFactory cfef = new FrameworkElementFactory(typeof(StackPanel));

            cfef.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);

            Binding binding = new Binding();

 

            FrameworkElementFactory subfef1 = new FrameworkElementFactory(typeof(TextBlock));

             subfef1.SetValue(TextBlock.TextProperty, binding);

             subfef1.SetValue(TextBlock.MarginProperty, new Thickness(0, 0, 5, 0));

             cfef.AppendChild(subfef1);

 

             FrameworkElementFactory subfef2 = new FrameworkElementFactory(typeof(CheckBox));

             subfef2.SetValue(CheckBox.ContentProperty, "添加");

             subfef2.SetValue(CheckBox.MarginProperty, new Thickness(0, 0, 5, 0));

             cfef.AppendChild(subfef2);

 

             FrameworkElementFactory subfef3 = new FrameworkElementFactory(typeof(CheckBox));

             subfef3.SetValue(CheckBox.ContentProperty, "修改");

             subfef3.SetValue(CheckBox.MarginProperty, new Thickness(0, 0, 5, 0));

             cfef.AppendChild(subfef3);

 

             FrameworkElementFactory subfef4 = new FrameworkElementFactory(typeof(CheckBox));

             subfef4.SetValue(CheckBox.ContentProperty, "删除");

             subfef4.SetValue(CheckBox.MarginProperty, new Thickness(0, 0, 5, 0));

             cfef.AppendChild(subfef4);

 

             cdt.VisualTree = cfef;

             tvi.HeaderTemplate = cdt;

         }

原文地址:https://www.cnblogs.com/chuhaida/p/3193677.html