WPF: Ошибка NullReferenceException при попытке установить чекбокс

Создаю на WPF диалоговое окно подобно этому:
WPF: Ошибка NullReferenceException при попытке установить чекбокс

Логика в этом окне следующая:
1. Если выбран пункт Local Computer, то отключаются (isEnabled = False) элементы:
— Поле для ввода имени компьютера
— Кнопка «Browse…»
— Чекбокс «Connect as another user:»
— Имя пользователя («<none>»)
— Кнопка «Set User…»
2. Если выбран пункт «Another computer», то включаются элементы:
— Поле для ввода имени компьютера
— Кнопка «Browse…»
— Чекбокс «Connect as another user:»
3. Если включен чекбокс «Connect as another user:», то включается кнопка «Set user»

При создании похожего диалога на Windows Forms в событии выбора пункта Local Computer у меня происходило включение/отключение других элементов интерфейса, согласно логике.
Код был примерно таким:

private void rbLocal_Checked(object sender, RoutedEventArgs e)
{
  cbUserName.IsChecked = false;
}

Здесь чекбокс с именем пользователя отключался, если был выбран пункт «Local Computer».

Перейдя на WPF этот код у меня не сработал. При запуске программы и вызове этого диалога я получил сообщение об ошибке:

«NullReferenceException: Object reference not set to an instance of an object.»

В XAML-редакторе я создал все те же самые элементы и даже присвоил им некоторые начальные значения, вот только при вызове события для RadioButton rbLocal оказалось, что все остальные элементы, включая чекбокс cbUserName еще не созданы и равны null.

Пока я обошел эту ошибку, перенеся часть логики в XAML с помощью binding, а чекбокс cbUserName отключал в событии rbRemote_Unchecked, когда уже все элементы были созданы.

Пример XAML-кода с логикой отключения элементов:

<Button x:Name="btnChoose" Grid.Row="1" Content="Choose..." HorizontalAlignment="Right" 
VerticalAlignment="Top" Width="75" Margin="0,3,5,0" Click="btnChoose_Click" 
IsEnabled="{Binding ElementName=rbRemote, Path=IsChecked, UpdateSourceTrigger=PropertyChanged}"/>

<CheckBox x:Name="cbUserName" Grid.Row="2" Margin="5" Content="Connect as another user:" 
HorizontalAlignment="Left" VerticalAlignment="Top" 
    IsEnabled="{Binding ElementName=rbRemote, Path=IsChecked, UpdateSourceTrigger=PropertyChanged}"/>

<Button x:Name="btnSetUser" Grid.Row="2" Content="Set user..." HorizontalAlignment="Right" 
VerticalAlignment="Top" Width="75" Margin="0,2,5,0" Click="btnSetUser_Click" 
IsEnabled="{Binding ElementName=cbUserName, Path=IsChecked, UpdateSourceTrigger=PropertyChanged}"/>

<Label x:Name="lblUserName" Grid.Row="2" Content="&lt;None&gt;" HorizontalAlignment="Left" 
VerticalAlignment="Top" Margin="153,0,0,0" 
    IsEnabled="{Binding ElementName=cbUserName, Path=IsChecked, UpdateSourceTrigger=PropertyChanged}" />