Попытка иметь значение по умолчанию для моих переключателей, но пометить ошибку NullReferenceException.Радио кнопки в XAML
private void rbImperial_Checked(object sender, RoutedEventArgs e)
{
txtInches.Visibility = Visibility.Visible;
lblInches.Visibility = Visibility.Visible;
lblWeight.Text = "lbs";
lblHeight.Text = "Feet";
}
private void rbMetric_Checked(object sender, RoutedEventArgs e)
{
lblHeight.Text = "cm";
txtInches.Visibility = Visibility.Collapsed;
lblInches.Visibility = Visibility.Collapsed;
lblWeight.Text = "kg";
}
rbImperial - переключатель по умолчанию, который необходимо проверить.
XAML:
<RadioButton x:Name="rbMetric" Content="Metric" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="132,244,0,0" Checked="rbMetric_Checked" ClickMode="Press"/>
<RadioButton x:Name="rbImperial" Content="Imperial" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="132,199,0,0" Checked="rbImperial_Checked" IsChecked="True" ClickMode="Press" />
Если я не имею rbImperial Checked свойство, чтобы быть правдой, чтобы сделать его по умолчанию будет выбран он работает прекрасно.
Что мне не хватает?
Моя проблема, когда я пытаюсь запустить ее.
Это не то, как мы делаем вещи в приложениях WPF. Вы не подписываетесь на событие с проверкой переключателя и не устанавливаете свойства других элементов пользовательского интерфейса в обработчике кода или обработчике событий. Узнайте о привязке данных, MVVM и триггерах ... –
Я издевался над вашим примером и не испытывал никаких проблем. Вы уверены, что это не что-то другое, дающее нулевую ссылку? Что-то в обработчике Checked event, вероятно, потому, что установленный по умолчанию флажок будет выполнять обработчик. – Crowcoder
Джош, должна быть большая проблема. Код, который вы написали, не должен давать вам никаких «нулевых» исключений в отношении радиокнопок. Не могли бы вы дать нам ошибку, которая производится в полном объеме (сообщение и все). Однако, как вы видите, переход по коду позади является проблематичным, тем более, что вы делаете дальнейший прогресс с вашим кодом. @DeanK. сделал замечание, что вы, вероятно, должны изучить привязку данных и MVVM ... и я должен согласиться. Поверьте мне, когда я был новым, я выбрал ваш маршрут, потому что это было легко, но я быстро бросил его. –