Запустите ваш код в отладчике после настройки следующим образом:
Там, где у вас есть textBlock4.Text = lbi.Content.ToString();
, замените его на:
object lbiContent = lbi.Content;
if(lbiContent != null) textBlock4.Text = lbiContent.ToString();
Установите точку останова на линии объекта.Таким образом, вы будете знать, что именно является содержимым вашего списка, и если оно равно нулю.
Скорее всего, вы просто помещаете что-то не так в
listBox2.Items.Clear();
listBox2.Items.Add("Radian");
listBox2.Items.Add("Degree");
В остальном все этоисправьте код, который вы указали.
Обновление:
Также попробуйте заменить
ListBoxItem lbi = ((sender as ListBox).SelectedItem as ListBoxItem);
на
ListBoxItem lbi = ((sender as ListBox).SelectedItem;
Вам не нужносделать двойное приведение.
И выбранный элемент списка может все еще быть пустым.
Обновление 2:
Скорее всего, это будет то, как вы извлекаете выбранный элемент:
ListBoxItem lbi = (args.AddedItems [0] as ListBoxItem);