gpt4 book ai didi

wpf - 通过 FindName() 查找动态生成的 Wcf 控件

转载 作者:行者123 更新时间:2023-12-01 09:37:24 26 4
gpt4 key购买 nike

在父控件中查找控件的 FramworkElement.FindName() 方法似乎应该直截了当...

但我正在升级,看起来框架不喜欢我正在尝试做的事情。

首先,我确实意识到有很多不同的做事方式,请记住这是我在 WPF 中创建的第一个表单。

我正在根据集合中的项目数将控件加载到 StackPanel 中。此方法是必须的,因为集合由 [用户输入的 Url] 中的目录数量决定。

列表将水平堆栈面板构建成垂直堆栈面板,在设计期间放置在表单上。

所以 dirStackPanel 在表单上。我将 controlStackPanel 插入 dirStackPanel n 次,并用识别名称命名每个:(string)("controlStackPanel"+ n)。

我也在用控件填充 controlStackPanel,但考虑到我无法按名称从其父级 (dirStackPanel) 检索 controlstackPanel,这是一个有争议的问题。

示例:

var getPanel = (StackPanel) this.dirStackPanel.FindName((string)("controlStackPanel"+ n))返回 Null

为了清楚起见,我在运行时插入的每个控件都被分配了一个名称,并且可以使用循环轻松检索。但是 FindName 方法不适用于父“StackPanel”的第一个子控件。它一直返回 null 而不是对象。

有什么想法吗?

最佳答案

如果您要动态创建控件,则必须调用 RegisterName首先能够找到它们。

例如:

dirStackPanel.RegisterName(controlStackPanel.Name, controlStackPanel);

关于wpf - 通过 FindName() 查找动态生成的 Wcf 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5266333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com