隐藏动态创建的网格子元素

发布于 2024-12-01 22:09:55 字数 325 浏览 0 评论 0原文

我有一个网格,我在其中创建并添加了后面代码中的元素。

Dim staffImgLeft As New Controls.Image()
staffImgLeft.Name = "StaffImgLeft"
mainGrid.Children.Add(staffImgLeft)

当我尝试从网格中删除子元素时,它们不会被删除。

mainGrid.Children.Remove(mainGrid.FindName("StaffImgLeft"))

代码运行时没有错误。谁能告诉我为什么我的代码不起作用?

I have a grid in which I have created and added elements from the code behind.

Dim staffImgLeft As New Controls.Image()
staffImgLeft.Name = "StaffImgLeft"
mainGrid.Children.Add(staffImgLeft)

When I am attempt to remove the child elements from the grid they are not being removed.

mainGrid.Children.Remove(mainGrid.FindName("StaffImgLeft"))

There are no errors when the code runs. Can anyone advise why my code isnt working?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笑脸一如从前 2024-12-08 22:09:55

FindName 返回 null,因此不会删除任何内容。

注册名称而不是将其设置为它可以找到:

mainGrid.RegisterName("StaffImgLeft",staffImgLeft)

FindName returns null, hence nothing gets removed.

Register the name instead of setting it to make it findable:

mainGrid.RegisterName("StaffImgLeft",staffImgLeft)
爱要勇敢去追 2024-12-08 22:09:55

您应该使用 RegisterNameUnregisterName,这样您就有一个可以简化对 NameScope 注册的访问的访问器。

Dim staffImgLeft As New Controls.Image();
staffImgLeft.Name = "StaffImgLeft";
mainGrid.Children.Add(staffImgLeft);
// register name
mainGrid.RegisterName(staffImgLeft.Name, StaffImgLeft);

// then remove
mainGrid.Children.Remove(mainGrid.FindName("StaffImgLeft"));
// un-register if you intend to re-register an element with the same name later.
mainGrid.UnregisterName("StaffImgLeft");

您可能应该阅读有关 WPF XAML 名称范围的内容
http://msdn.microsoft.com/en-us/library/ms746659.aspx

You should use RegisterName and UnregisterName so you have an accessor that simplifies access to the NameScope registration.

Dim staffImgLeft As New Controls.Image();
staffImgLeft.Name = "StaffImgLeft";
mainGrid.Children.Add(staffImgLeft);
// register name
mainGrid.RegisterName(staffImgLeft.Name, StaffImgLeft);

// then remove
mainGrid.Children.Remove(mainGrid.FindName("StaffImgLeft"));
// un-register if you intend to re-register an element with the same name later.
mainGrid.UnregisterName("StaffImgLeft");

You should probably read about WPF XAML Namescopes
http://msdn.microsoft.com/en-us/library/ms746659.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文