“System.ArgumentException:某某不是属性”Name”的有效值”解决方法

超市通管理系统的主页面

在我做好了主页面,开始做左边的功能。
在做第一个button按钮的基本信息区出错了。
说:System.ArgumentException:””System.Windows.Controls.DockPanel”不是属性”Name”的有效值”,如下图:
在这里插入图片描述
一开始我以为是我没有XAML代码出错,但是我发现没有错,就是加了DockPanel。如下图:
在这里插入图片描述
但是我没有想到是DockPanel出现问题。以为是C#的问题,发现有没有错。

C#代码:
private void AddItem(object sender, string trname, UserControl UC)
        {
            UCTabItemWithClose item = new UCTabItemWithClose();
            item.Content = UC;
            item.Name = trname;//名称
            item.Header = string.Format(trname);//标头名称
            TC.Items.Add(item);
            TC.SelectedItem = item;
        }
        private void 基本信息_Click(object sender, RoutedEventArgs e)
        {
            基本信息区 my基本信息区 = new 基本信息区();
            AddItem(sender, 基本信息区.Content.ToString(), my基本信息区);
        }

后来我把XAML的DockPanel删掉,在button加上Content=“基本信息”,启动项目,点击button居然没有报错。
我才意识到是Content这个混蛋惹得祸,在主页面哪里也说了,不能直接在button加图片和文字,加了就说设置多个Content属性,所以我就用了DockPanel。
其实解决不是很困难,既然它说不是有效值,那我们就给他有效值。
AddItem的方法不有改变。

private void AddItem(object sender, string trname, UserControl UC)
        {
            UCTabItemWithClose item = new UCTabItemWithClose();
            item.Content = UC;
            item.Name = trname;//名称
            item.Header = string.Format(trname);//标头名称
            TC.Items.Add(item);
            TC.SelectedItem = item;
        }

基本信息_Click点击事件要改变,直接声明button里的name,把它变成有效值就可以了。

private void 基本信息_Click(object sender, RoutedEventArgs e)
        {
            基本信息区 my基本信息区 = new 基本信息区();
            var a = sender as Button;
            AddItem(sender, a.Name, my基本信息区);
        }

基本信息区是我一个测试页面的,这样就成功嵌套进去了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值