WPF自定义控件 Name属性问题

PirloL 2014-04-18 09:40:15
我自己编写了一个自定义控件,然后MainWindow.xmal中调用,Name属性赋值了,但是后台取不到。改成x:Name,编译报错:错误 2 类型“ControlTree”不能具有 Name 特性。值类型和没有默认构造函数的类型可以用作 ResourceDictionary 中的项。 行 7 位置 27. F:\c#\TreeControl\WpfTree\MainWindow.xaml 7 27 WpfTree。求大神指导!
...全文
672 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bonjour-你好 2014-04-18
  • 打赏
  • 举报
回复
在 ControlTree.xmal.cs 中新增一个这样的无参构造函数:
public ControlTree()
{
    InitializeComponent();
}
PirloL 2014-04-18
  • 打赏
  • 举报
回复
继承UserControl ControlTree.xmal.cs
     public partial class ControlTree : UserControl
    {
        DataTable dt_;
        public ControlTree(DataTable ParamDT)
        {
            InitializeComponent();
            LoadedTree(ParamDT);
        }

        public DataTable DTSource
        {
            set
            {
                dt_ = value;
            }
            get
            {
                return dt_;
            }
        }

        public string Name
        {
            get{ return this.Name;}
            set { this.Name = value; }
        }

        private void LoadedTree(DataTable ParamDT)
        {
            if (treeView1.Items.Count > 0)
            {
                return;
            }

            //定义树模版
            HierarchicalDataTemplate tpl = new HierarchicalDataTemplate(typeof(TreeNode));
            tpl.ItemsSource = new Binding("SubNode");
            FrameworkElementFactory factoryTextBlock = new FrameworkElementFactory(typeof(TextBlock));
            factoryTextBlock.SetBinding(TextBlock.TextProperty, new Binding("Name"));
            tpl.VisualTree = factoryTextBlock;

            TreeNode rootRsc = new TreeNode("", "", "", ParamDT);
            foreach (TreeNode temp in rootRsc.SubNode)
            {
                TreeViewItem rootItem = new TreeViewItem();
                rootItem.Header = temp.Name;
                rootItem.ItemsSource = temp.SubNode;
                rootItem.ItemTemplate = tpl;
                rootItem.IsExpanded = true;
                treeView1.Items.Add(rootItem);
            }
        }
    }
MainWindow.xma;:

<Window x:Class="WpfTree.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:tree="clr-namespace:WpfTree"
        Title="MainWindow" Height="350" Width="525">
    <Grid Name="grid1">
        <tree:ControlTree Name="tree1"></tree:ControlTree>
    </Grid>
</Window>
tree1后台找不到,改成x:Name就报问题中的错误了
Bonjour-你好 2014-04-18
  • 打赏
  • 举报
回复
ControlTree简要代码?ControlTree继承自?ControlTree的构造函数?

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧