FramworkElement.FindName() 方法用于在父控件内查找控件,看起来很简单...
但是我想升级它,似乎框架不喜欢我正在尝试的事情。
首先,我确实意识到有很多不同的方法可以做到这一点,并且请记住,这是我在WPF中创建的第一个表单。
我根据集合中的项目数量将控件加载到 StackPanel 中。由于该集合取决于[user entered Url]中的目录数量,因此必须使用此方法。
该列表构建了水平堆栈面板,这些面板被放置在设计期间放置在垂直堆栈面板中。
因此,dirStackPanel 在表单上。 我将 controlStackPanel 插入 dirStackPanel 中 n 次,并使用标识名称命名每个控件:(string)("controlStackPanel" + n)。
我还填充了 controlStackPanel 中的控件,但是考虑到我无法通过名称从其父项(dirStackPanel)检索 controlStackPanel,这是一个无意义的点。
例如:
var getPanel = (StackPanel) this.dirStackPanel.FindName((string)("controlStackPanel" + n))
返回 Null
因此,每个我在运行时插入的控件都被分配了一个名称,并且可以使用循环轻松检索。但是,FindName 方法无法在父 "StackPanel" 的第一个子控件上工作。它一直返回 null 而不是对象。
有什么想法吗?