1

私はかなり単純な Windows 8 XAML/C# UserControl を持っています:

  <UserControl
    x:Class="periodicTable.cell"
    x:Name="periodicTableCell"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:periodicTable"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="100"
    d:DesignWidth="65">

<Grid Background="White">
    <Grid.RowDefinitions>
        <RowDefinition Height="15"/>
        <RowDefinition Height="20"/>
        <RowDefinition Height="50"/>
        <RowDefinition Height="15"/>
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0" x:Name="txtElementName"/>
    <TextBlock Grid.Row="1" x:Name="txtAtomicNumber"/>
    <TextBlock Grid.Row="2" x:Name="txtSymbol"/>
    <TextBlock Grid.Row="3" x:Name="txtAtomicWeight"/>
</Grid>

私のコードビハインドは次のとおりです。

namespace periodicTable
{
    public sealed partial class cell : UserControl
    {

        public string elementName { get; set; }
        public string atomicNumber { get; set; }
        public string symbol { get; set; }
        public string atomicWeight { get; set; }

        public cell()
        {
            this.InitializeComponent();

            this.txtElementName.Text = elementName.ToString();
            this.txtAtomicNumber.Text = atomicNumber.ToString();
            this.txtAtomicWeight.Text = atomicWeight.ToString();
            this.txtSymbol.Text = symbol.ToString();
        }
    }
}

このコントロールを MainPage XAML に追加すると:

xmlns:local="using:periodicTable"

次に、それをグリッドに追加しようとすると:

<local:cell Grid.Row="0" Grid.Column="2"/>

次のようなエラーが表示されます。object reference not set to an instance of an object

このユーザーコントロールを多くの行と列で再利用する予定があることに注意してください...

私は何を間違っていますか?

4

1 に答える 1

5

elementNameatomicNumbersymbolおよびatomicWeightが初期化されていないようです。それらの値は null になり、.ToString()メソッドは失敗します。最初に空の文字列に初期化してみてください。

于 2013-01-18T05:06:14.950 に答える