【发布时间】:2020-03-26 09:47:15
【问题描述】:
我有一个 ItemsControl(A)。 ItemSourece 是一个“帐户”类。它包含一些控件和另一个 ItemsControl(B)。
ItemsControl(B) 包含一些 CheckBox。它的 ItemSourece 是包含在“Account”类中的 ObservableCollection。 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);
}
但它仍然无法获取父级。 尽管运行时可以显示 parentElement.VisualParent,但实际上它不起作用。
请帮帮我!谢谢!
【问题讨论】:
-
当您将铸件放到
ContentPresenter时,您的var parentElement会发生什么?如果错误的转换不会抛出异常,最好的情况是你得到 null。 -
请提供一个具体的例子。
CheckBox_Click是如何以及在哪里连接的? -
@mm8 CheckBox_Click 是 CheckBox 事件,所以 CheckBox 中的数字如何由 ObservableCollection 决定。
-
@Mike 我添加了一些图片。我得到了很多 ContentPresenter 的属性,datacontext 是 CheckBox。
-
我通过在ItemsControl(B)处添加PreviewMouseUp事件暂时解决了这个问题,并成功获取父级。但我认为这将是一个比这更好的答案。
标签: wpf checkbox code-behind itemscontrol findancestor