我有一个 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] 删除。
我来说两句