在这里,我希望通过按钮点击事件来查找元素并验证一些文本框。
private void button1_Click(object sender, RoutedEventArgs e)
{
var button = (Button) sender;
// button Parent
var stackPanel = button.Parent as StackPanel;
// button Parent > parent
var parentStackPanel = stackPanel.Parent as StackPanel;
// button Parent > parent > Children
var childStackPanel = parentStackPanel.Children.Where(a => a is StackPanel).FirstOrDefault() as StackPanel;
// button Parent > parent > Children >Elements
var textBox = childStackPanel.Children.Where(a => a is TextBox).FirstOrDefault() as TextBox;
var image = childStackPanel.Children.Where(a => a is Image).FirstOrDefault() as Image;
if (textBox.Text == "") image.Source = new BitmapImage(new Uri("/Images/Others/TickWrong.png", UriKind.RelativeOrAbsolute));
}
问题在于我只能通过FirstOrDefault()找到第一个元素。
var childStackPanel = parentStackPanel.Children.Where(a => a is StackPanel).FirstOrDefault() as StackPanel;
有没有可能通过数组或其他方式找到所有元素?