c# - WPF:从父容器中删除 "yourself"

标签 c# wpf

我的用户控件中有一个按钮,用于从其父容器中删除用户控件。这就是我今天的编码方式。

private void RemoveRoleButton_Click(object sender, RoutedEventArgs e)
{
    if (ConfirmRoleRemoval())
    {
        Panel parentPanel = (Panel)this.Parent;
        parentPanel.Children.Remove(this);
    }
}

private bool ConfirmRoleRemoval()
{
    return MessageBox.Show("Are you sure [...]
}

在WPF中这样做正常吗?

最佳答案

是的,我觉得还不错。正如 Mike Hillberg 所写 in his blog :

An element doesn’t actually pick its logical parent; instead, a parent “adopts” children.

因此,“删除”子项也是通过父项的对象模型完成的。

附带说明:当父级不是 Panel(而不是等待 InvalidCastException)时,您可能需要考虑抛出一个“不错”的异常(或者甚至禁用按钮)。

关于c# - WPF:从父容器中删除 "yourself",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153485/

相关文章:

wpf - 最佳实践 WPF Prism 资源

c# - 图像未绑定(bind)到资源。如何使用 Relativesource 进行绑定(bind)

c# - Visual Studio 2015 XAML 文件卡住

c# - 是否有相当于 C#/.NET 的 Perl URI.pm 的版本?

c# - 解析,parseexact字符串(varchar)从db mysql到sql查询中的datetimepicker C#

c# - 标记扩展 : changing constructor argument is not evaluated in design time

c# - 为什么我的命令不能启用按钮?

c# - 在 WPF 中将 Canvas 的派生类添加到 Window 时出现问题

c# - 使用秒表倒计时

c# - Mono 网络服务和基本身份验证