Я думаю, что проблема в том, что когда код попадает в foreach l oop, он извлекает первого потомка StackPanel и преобразует их, например, в StackPanelBatchInput . Но когда дочерний объект не относится к типу StackPanelBatchInput , вы получите исключение.
Попробуйте это для циклов foreach:
foreach (StackPanelBatchInput entry in thisColumn.Children.OfType<StackPanelBatchInput>())
{
...
foreach (TextBox textinput in entry.Children.OfType<TextBox>())
enteredValue = textinput.Text;
...
}
Это отфильтрует элементы указанного типа (например, TextBox, CheckBox, ...). Для получения дополнительной информации OfType <> ()
Если это не решит вашу проблему, вы можете опубликовать свой XAML-код и исключение, пожалуйста. Это будет более полезным для читателя.