WPF动态控件生成查找不到问题
2012 08 10 遇到此类问题,已经找到解决方案 记录以备后用
动态往界面添加控件 在页面未显示的情况时,虽然对控件增加了id name等属性但是使用 TextBox txtOtherNation = visistCaseOperGrid.FindName("txtOtherNation") as TextBox;
visistCaseOperGrid.Children.Add(rb);
//visistCaseOperGrid控件容器
//声明控件的是约定的控件类型
这是时候问题出现得到的我是空对象,因为此控件还没与被实例化
相应解决方案
this.RegisterName("txtOtherNation", box); 进行注册
this.RegisterName("txtOtherNation", box); 进行注册
这时候在使用就可以得到预期的效果了
TextBox txtOtherNation = visistCaseOperGrid.FindName("txtOtherNation") as TextBox;
if (txtOtherNation != null)
{
txtOtherNation.Visibility = Visibility.Visible;
}
TextBox txtOtherNation = visistCaseOperGrid.FindName("txtOtherNation") as TextBox;
if (txtOtherNation != null)
{
txtOtherNation.Visibility = Visibility.Visible;
}
但是使用完毕,或者不再使用的时候需要进行 注销
UnregisterName("txtOtherNation");
UnregisterName("txtOtherNation");
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步