我怎样才能类型的子控件ComboBox中MyContainer Grid的WPF?
ComboBox
MyContainer
Grid
<Grid x:Name="MyContainer"> <Label Content="Name" Name="label1" /> <Label Content="State" Name="label2" /> <ComboBox Height="23" HorizontalAlignment="Left" Name="comboBox1"/> <ComboBox Height="23" HorizontalAlignment="Left" Name="comboBox3" /> <ComboBox Height="23" HorizontalAlignment="Left" Name="comboBox4" /> </Grid>
这行给我一个错误:
var myCombobox = this.MyContainer.Children.GetType(ComboBox);
此扩展方法将递归搜索所需类型的子元素:
public static T GetChildOfType<T>(this DependencyObject depObj) where T : DependencyObject { if (depObj == null) return null; for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++) { var child = VisualTreeHelper.GetChild(depObj, i); var result = (child as T) ?? GetChildOfType<T>(child); if (result != null) return result; } return null; }
因此,您可以要求使用MyContainer.GetChildOfType<ComboBox>()。
MyContainer.GetChildOfType<ComboBox>()