2014-09-22 5 views
0

Попытка иметь значение по умолчанию для моих переключателей, но пометить ошибку 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 свойство, чтобы быть правдой, чтобы сделать его по умолчанию будет выбран он работает прекрасно.

Что мне не хватает?

Моя проблема, когда я пытаюсь запустить ее.

enter image description here

+0

Это не то, как мы делаем вещи в приложениях WPF. Вы не подписываетесь на событие с проверкой переключателя и не устанавливаете свойства других элементов пользовательского интерфейса в обработчике кода или обработчике событий. Узнайте о привязке данных, MVVM и триггерах ... –

+0

Я издевался над вашим примером и не испытывал никаких проблем. Вы уверены, что это не что-то другое, дающее нулевую ссылку? Что-то в обработчике Checked event, вероятно, потому, что установленный по умолчанию флажок будет выполнять обработчик. – Crowcoder

+0

Джош, должна быть большая проблема. Код, который вы написали, не должен давать вам никаких «нулевых» исключений в отношении радиокнопок. Не могли бы вы дать нам ошибку, которая производится в полном объеме (сообщение и все). Однако, как вы видите, переход по коду позади является проблематичным, тем более, что вы делаете дальнейший прогресс с вашим кодом. @DeanK. сделал замечание, что вы, вероятно, должны изучить привязку данных и MVVM ... и я должен согласиться. Поверьте мне, когда я был новым, я выбрал ваш маршрут, потому что это было легко, но я быстро бросил его. –

ответ

0

Попробуйте установить значение по умолчанию в конструкторе. Не самый красивый метод, но он должен работать. Кроме того, вы можете привязать его к ViewModel; это тоже должно работать.

Смежные вопросы