Вы не сказали, что такое в текстовом поле, когда вы анализируете его. Возможно, он пуст или пользователь набрал что-то вроде «Фред». Вы всегда должны предполагать, что ввод может быть недействительным:
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
float height;
if (!float.TryParse(textBox1.Text, out height))
{
// Indicate to the user that the input is invalid, and stop processing
// at this point. For example, you may want to highlight the textbox with
// a red box. Return at the end of the block.
}
// It parsed correctly: continue...
height = height*height;
...
}
(Вероятно, это будет немного отличаться в подходе MVVM, но вы все равно захотите использовать float.TryParse
до теста пользовательского ввода перед его принятием.)