这类控件都继承于Selector,其中主要有ComboBox、listview、listbox、datagrid。
由于个人对WPF的了解所有可能有遗漏,希望各位能够指出一起进步。
在遍历上面控件时主要分两种情况:
1、控件未渲染完成:例如赋值ItemsSource 需要遍历
a、Combobox:将IsDropDownOpen先设置为false再设置为true
b、Listbox等:只需要先运行UpdateLayout()
2、控件已渲染完成:直接遍历
代码如下:
1、combobox
comboBox.IsDropDownOpen = true;
comboBox.IsDropDownOpen = false;
foreach (var item in comboBox.Items)
{
ComboBoxItem temp = comboBox.ItemContainerGenerator.ContainerFromItem(item) as ComboBoxItem;
}
2、dataGrid
TestDataGrid.ItemsSource = null;
TestDataGrid.ItemsSource = Student.GetTestData(5);
TestDataGrid.UpdateLayout();
foreach (var item in TestDataGrid.Items)
{
DataGridRow row = TestDataGrid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
}