如果我有一个派生自 的组件ItemsControl
,我可以访问它的子组件的集合,以便我可以遍历它们以执行某些操作吗?目前我似乎找不到任何简单的方法。
问问题
22507 次
3 回答
62
类似于Seb 的解决方案,但可能具有更好的性能:
for(int i = 0; i < itemsControl.Items.Count; i++)
{
UIElement uiElement =
(UIElement)itemsControl.ItemContainerGenerator.ContainerFromIndex(i);
}
于 2009-06-16T09:42:42.057 回答
25
看看这是否对您有帮助:
foreach(var item in itemsControl.Items)
{
UIElement uiElement =
(UIElement)itemsControl.ItemContainerGenerator.ContainerFromItem(item);
}
控件中的逻辑项与UIElement
.
于 2009-06-16T09:31:22.003 回答
21
要识别ItemsControl
的数据绑定子控件(如 a ToggleButton
),您可以使用:
for (int i = 0; i < yourItemsControl.Items.Count; i++)
{
ContentPresenter c = (ContentPresenter)yourItemsControl.ItemContainerGenerator.ContainerFromItem(yourItemsControl.Items[i]);
ToggleButton tb = c.ContentTemplate.FindName("btnYourButtonName", c) as ToggleButton;
if (tb.IsChecked.Value)
{
//do stuff
}
}
于 2009-12-09T20:11:10.327 回答