我有一堆网格中的CheckBoxes。我想访问它们,以便在启动时根据注册表值设置它们以进行选中或取消选中。有没有办法获得UIElementCollection中的项目?
我已经得到了网格的孩子作为UIElementCollection,并筛选出其他类型..但是,似乎没有任何方式访问存储在集合内的数据。有没有一个简单的方法来做到这一点?
我有一堆网格中的CheckBoxes。我想访问它们,以便在启动时根据注册表值设置它们以进行选中或取消选中。有没有办法获得UIElementCollection中的项目?
我已经得到了网格的孩子作为UIElementCollection,并筛选出其他类型..但是,似乎没有任何方式访问存储在集合内的数据。有没有一个简单的方法来做到这一点?
UIElementCollection
是IEnumerable
所以你可以遍历它...
foreach(UIElement child in myUIElementCollection)
{
}
要按类型简化搜索的控制或任何你可以以这种方式使用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
?
注册表值是一个位掩码,我需要检查每一位,并将复选框设置为相应地选中或取消选中。 – Luke
我结束了使用 如果(o是) { } 要检查我想要的元素。 – Luke
感谢您的帮助,尽管 – Luke