2011-08-12 27 views
0

我有一堆网格中的CheckBoxes。我想访问它们,以便在启动时根据注册表值设置它们以进行选中或取消选中。有没有办法获得UIElementCollection中的项目?

我已经得到了网格的孩子作为UIElementCollection,并筛选出其他类型..但是,似乎没有任何方式访问存储在集合内的数据。有没有一个简单的方法来做到这一点?

回答

5

UIElementCollectionIEnumerable所以你可以遍历它...

foreach(UIElement child in myUIElementCollection) 
{ 
} 
1

要按类型简化搜索的控制或任何你可以以这种方式使用VisualTreeHelper和遍历元素:

foreach (UIElement childElement in myUIElementCollection) 
{ 
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(childElement); i++) 
    { 
    DependencyObject child = VisualTreeHelper.GetChild(depObj, i); 
    var checkBox = child as CheckBox; 
    if (checkBox != null) 
    { 
     // update it 
    } 
    } 
} 

顺便说一句,为什么只是不暴露像IsRegistryValueFound布尔属性,只是将其绑定到CheckBox.IsChecked财产XAML

+0

注册表值是一个位掩码,我需要检查每一位,并将复选框设置为相应地选中或取消选中。 – Luke

+0

我结束了使用 如果(o是) { } 要检查我想要的元素。 – Luke

+0

感谢您的帮助,尽管 – Luke

相关问题