如何在Silverlight中查找嵌套元素

Fai*_*zan 0 c# silverlight

private void button_Click(object sender, RoutedEventArgs e)
{
   var button = (Button) sender;

   var stackPanel = button.Parent as StackPanel;
   var childStackPanel = stackPanel.Children.Where(a => a is StackPanel).FirstOrDefault();

   // var textbox = childStackPanel.Children.Where(a => a is StackPanel).FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,无法在Element,textbox中获取Element.

但是当我编码时它会出错chidStackPanel.Children.没有儿童物业.

vcs*_*nes 5

Where过滤掉了儿童,这是一个UIElement没有Children财产的集合.你需要把它投射到一个StackPanel.而不是那个,OfType救援:

var childStackPanel = stackPanel.Children.OfType<StackPanel>().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

OfType 过滤掉不属于该类型的项目,同时将其转换为该类型.