Bre*_*cer 3 wpf dynamic-controls findname
在父控件中查找控件的FramworkElement.FindName()方法似乎应该直截了当...
但我正在加强anty,似乎框架不喜欢我想做的事情.
首先,我意识到有很多不同的做事方式,请记住这是我在WPF中创建的第一种形式.
我根据集合中的项目数将控件加载到StackPanel中.此方法是必须的,因为集合由[用户输入的URL]中的目录数决定.
该列表将水平堆栈面板构建为垂直堆栈面板,该面板在设计期间放置在表单上.
所以dirStackPanel就在表格上.我将controlStackPanel插入dirStackPanel n次,并用识别名称命名每个:(string)("controlStackPanel"+ n).
我也在使用控件填充controlStackPanel,但考虑到我无法通过名称从父级(dirStackPanel)检索controlstackPanel,这是一个没有实际意义的问题.
例:
var getPanel = (StackPanel) this.dirStackPanel.FindName((string)("controlStackPanel" + n))返回Null
所以要清楚的是,我在AT RUN TIME插入的每个控件都被分配了一个名称,并且可以使用循环轻松检索.但FindName方法不适用于父"StackPanel"的第一个子控件.它不断返回null而不是对象.
有任何想法吗?
如果要动态创建控件,则必须先调用RegisterName才能找到它们.
例如:
dirStackPanel.RegisterName(controlStackPanel.Name, controlStackPanel);
Run Code Online (Sandbox Code Playgroud)