2016-04-19 59 views
0

開発中にこの問題が発生しました。コンパイラが問題になるのは、オブジェクト参照が設定されていないことです。したがって、NULLポインタのようなものです。WPF XAMLオブジェクト参照がオブジェクトのインスタンスに設定されていません

<Window x:Class="BattleShip.MVVM.Views.NewGameSettings" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:viewModels="clr-namespace:BattleShip.MVVM.ViewModels" 
      mc:Ignorable="d" 
      Title="New Game" ResizeMode="NoResize" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen"> 
     <Window.DataContext> 
      <viewModels:SettingsViewModel/> 
     </Window.DataContext><Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition MinHeight="80" Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition MinHeight="30" Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition MinWidth="80" Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition MinWidth="80" Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Image Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4" Source="{StaticResource Background}" Height="120" Stretch="Fill"/> 
    <Label 
     x:Name="HeightLabel" 
     Content="Height" 
     Grid.Column="1" Grid.Row="1" 
     Margin="0,10,0,0"/> 
    <Label 
     x:Name="WidthLabel" 
     Content="Width" 
     Grid.Column="1" Grid.Row="2" 
     Margin="0,10,0,0"/> 
    <Label 
     x:Name="DifficultyLabel" 
     Content="AI Difficulty" 
     Grid.Column="1" Grid.Row="3" 
     Margin="0,10,0,0"/> 
    <TextBox x:Name="LengthBox" 
      TextWrapping="NoWrap" 
      VerticalContentAlignment="Center" 
      IsInactiveSelectionHighlightEnabled="True" 
      Grid.Column="2" 
      Grid.Row="1" 
      HorizontalAlignment="Left" 
      Width="100" 
      Text="{Binding Height}" 
      Margin="0,10,0,0"/> 
    <TextBox x:Name="HeightBox" 
      TextWrapping="NoWrap" 
      VerticalContentAlignment="Center" 
      Text="{Binding Width}" 
      Grid.Column="2" Grid.Row="2" 
      HorizontalAlignment="Left" 
      Width="100" 
      Margin="0,10,0,0"/> 
    <ComboBox ItemsSource="{Binding Difficulties}" 
       SelectedItem="{Binding SelectedDifficulty}" 
       Grid.Column="2" Grid.Row="3" 
       VerticalContentAlignment="Center" 
       HorizontalAlignment="Left" 
       Width="100" 
       Margin="0,10,0,0"/> 

    <Button Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Content="Start" Margin="0,10,0,0" Command="{Binding StartGameCommand}"/> 
</Grid> 

これは、エラー(線)を与えるコードです。このビューモデルを初期化してからこの問題を解決するにはどうすればよいですか?

+5

おそらく、それは 'viewModels:SettingsViewModel'コンストラクターによって投げられたヌルリファレンスです。 – quetzalcoatl

+0

これは良い点です。コンストラクタのパラメータに依存している場合は、コードビハインドファイルに 'Window'の' DataContext'をプログラムで設定することができます。 –

+0

[NullReferenceExceptionとは何ですか?どうすれば修正できますか?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Default

答えて

-1

あなたが正しいのViewModelを持っている場合は、コンパイラエラーは、Visual Studioのバグによって引き起こされる可能性は、VS 2015年に起こった、VS2013は、ソリューションをetc.Soです:

が.suoファイルを削除しようと再起動Visual Studio。

関連する問題