(WPF) 如何在后面的代码中找到关于两个 ItemsControl 的祖先?

陈瑞奇

我有一个 ItemsControl(A)。ItemSourece 是一个“帐户”类。它包含一些控件和另一个 ItemsControl(B)。

ItemsControl(B) 包括一些 CheckBox。它的 ItemSourece 是 ObservableCollection 包含在“Account”类中。CheckBox 的内容绑定到内容。CheckBox 的 IsChecked 绑定到 IsChecked。

在此处输入图片说明

现在,当我单击 CheckBox 时,我想在“帐户”类中获取 ID 和用户,但我不知道如何获取它们。我已经尝试使用

    private void CheckBox_Click(object sender, RoutedEventArgs e)
    {
        CheckBox checkBox = sender as CheckBox;
        var parentElement = (ContentPresenter)VisualTreeHelper.GetParent(checkBox);           
    }

但它仍然无法获得父母。Althouth 运行时可以显示 parentElement.VisualParent,但实际上它不起作用。在此处输入图片说明 在此处输入图片说明

请帮我!谢谢!

麦克风

@RickyChen - 我看到你的问题。AuthorityCheckBox绑定到您的视觉复选框。当您单击复选框时,没有任何返回AuthorityCheckBox.

您可以做的是滥用Tag复选框属性并将AuthorityCheckBox引用放在那里。

调整您的AuthorityCheckBox类,使其包含public Account Parent在构造函数中分配的类。通过这种方式,您可以轻松获得AuthorityCheckBox父级:

public class AuthorityCheckBox
{
    public string Content { get; set; }
    public bool IsChecked { get; set; }
    public bool IsEnabled { get; set; }
    public Account Parent { get; private set; }

    public AuthorirtyCheckBox(Account parent)
    {
         this.Parent = parent;
    }
}

事件处理程序看起来像这样:

private void CheckBox_Click(object sender, RoutedEventArgs e)
{
    AuthorityCheckBox acb = (sender as FrameworkElement).Tag as AuthorityCheckBox;
    Account parent = acb.Parent;           
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

WPF 从后面的代码添加的 UserControl 绑定到祖先

C# WPF 如何在后面的代码中获取绑定值

如何在后面的代码中设置WPF ApplicationCommands

WPF如何在后面的代码中设置Gridview绑定中的复选框

WPF如何在后面的代码中检索绑定的属性

无背景WPF的ItemsControl

我将如何在静态方法中引用 WPF ItemsControl?

C# WPF MVVM - 如何从 ItemsControl/DataTemplate 访问特定项目?

如何将枚举ItemsControl绑定到WPF中的集合?

如何使包含ItemsControl的WPF网格具有相等大小的列

绑定到ItemsControl仅在后面的代码中有效

如何在XQuery中找到两个节点的最低公共祖先?

WPF ItemsControl中的项目间距

WPF ItemsControl中的重叠项目

从 ItemsControl (WPF MVVM) 触发事件

WPF Itemscontrol datatemplate属性更改

WPF ItemsControl 无法绑定命令

如何处理在后面的代码中引发WPF Validation.ErrorEvent的需要

WPF ItemsControl模板不显示ItemsControl.Items

WPF-如何在UpdateSourceTrigger = Explicit时向数据绑定的ItemsControl添加/删除项目

如何在任何二叉树中找到两个节点的最低公共祖先?

如何递归表达“祖先”

如何访问 ItemsControl->ItemTemplate->DataTemplate->StackPanel 中的按钮?wpf c#

如何将用户控件放在 wpf 棱镜中的 itemsControl 中

WPF 如何使用数据绑定在 ItemsControl 中查找特定控件

WPF 在 `ItemsControl` 内的控件中定义 DataContext

WPF:ItemsControl 中的行和列

WPF 绑定到 ItemsControl 的 ItemsPanel 的属性

WPF 绑定不适用于 ItemsControl