蝉看见后合金 2022-03-14 22:06 采纳率: 50%
浏览 92

WPF xaml中生成的控件具有AutomationProperties.Name属性会导致在cs中找不到的问题

问题遇到的现象和发生背景

拖拽控件到设计器里,运行没问题,第一次在.cs中也能得到 this.shilong控件,但是一运行(调试或者启动或者Ctrl+F5)马上.cs里的this.shilong就报错,上下文找不到shilong
shilong是控件拖入设计器后在属性里修改的Name的值

img

在xaml里会自动生成 AutomationProperties.Name

img

在cs中第一次写入没问题

img


一旦运行就错误

img


一旦错误后就会找不到shilong

img

但是如果删除AutomationProperties.Name直接改为Name就没有任何问题
这是为什么?有没有什么办法解决这个问题,不然每次在属性里修改Name都会这样很麻烦

img

img

img

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • XingyuZhao-MSFT 2022-03-17 10:08
    关注

    你需要区分 AutomationProperties.Name 和 x:Name 两者的区别。
    正确的使用方式:

    <TextBox x:Name="tb1" ... AutomationProperties.Name="shilong"/>
    
    MessageBox.Show(this.tb1.Text);
    

    以下链接或许对你有用:
    https://stackoverflow.com/questions/4605777/automationproperties-name-vs-xname

    评论

报告相同问题?

问题事件

  • 创建了问题 3月14日

悬赏问题

  • ¥15 ecology9的待办推送外部系统
  • ¥15 Mplus跑出来的数据只有原数据的一半
  • ¥15 vue项目添加全局处理解决一些开发问题
  • ¥40 微信小程序前后端交互
  • ¥50 数据预处理(大量数据)
  • ¥15 多设备数据融合可视化显示控制
  • ¥15 公众号关键词自动回复超链接
  • ¥18 help me! 希望大家来看看 吉~
  • ¥15 C++显示超限兔子集结
  • ¥15 sql server 2012的下载出错