我有一堆網格中的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