gpt4 book ai didi

Silverlight 3 - 在项目控件中查找元素

转载 作者:行者123 更新时间:2023-12-04 06:55:46 24 4
gpt4 key购买 nike

我有一个绑定(bind)到对象集合的 ItemsControl。每个对象都有自己的集合以及其他重要属性。为了在对象中显示对象,我在 ItemsControl 中显示 TreeView。我知道这听起来很疯狂。但是,这只是我试图完成的工作的精简版本,以使问题集中在问题上。这是我的示例:

<ItemsControl x:Name="myItemsControl">
<ItemsControl.ItemTemplate>
<DataTemplate>
<controls:TreeView x:Name="myTreeView">
</controls:TreeView>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

当用户单击按钮时,我需要检索与特定对象关联的当前 TreeView。为了做到这一点,我正在尝试以下方法:
MyClass instanceToFind = (MyClass)(IdentifyDesiredInstance());                
foreach (MyClass instance in myItemsControl.Items)
{
if (instance.ID == instanceToFind.ID)
{
TreeView treeView = null; // How do I get the TreeView?

// Do other necessary updates
}
}

上面的代码片段显示了我试图获取 TreeView 的位置。循环遍历项目控件中的项目时如何获取 TreeView?

谢谢!

最佳答案

您需要使用 VisualTreeHelper.GetChild VisualTreeHelper.GetChildrenCount 遍历 View 子项的方法,直到找到与您的项目对应的树。您应该可以查看 TreeView.DataContext属性(property)对您的项目,以验证其正确的。注意,你需要递归地使用它作为 GetChild只检索直系子级。

由于无论如何您都需要迭代可视化树,我建议放弃当前的循环,而是只循环子项,检查其数据上下文的 ID。

关于Silverlight 3 - 在项目控件中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2579358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com