0

tileSliderをグリッドに追加しようとすると、NREが発生します。理由を説明することはできません。うまくいけば、誰かがそれを手伝ってくれるでしょう。

EDIT2:tileSliderは、ここで提供されるカスタムコントロールです:http ://tileslider.codeplex.com/ アプリで使用しようとしましたが、c#-codebehindで実装できませんでした。

コード:

    private void addNormalTiles()
    {
        foreach (KeyValuePair<TileSlider, int[]> slider in (App.Current as App).normalTiles)
        {
            TileSlider x = slider.Key;
            x.Size = 228;
            Grid.SetColumnSpan(x, 2);
            Grid.SetRowSpan(x, 2);
            Grid.SetRow(x, slider.Value[0]);
            Grid.SetColumn(x, slider.Value[1]);
            ContentPanel.Children.Add(x);
        }
    }

ありがとう

編集:

   System.NullReferenceException wurde nicht behandelt. 
   Message=NullReferenceException StackTrace: at     
   ScottIsAFool.Controls.TileSlider.TileSlider_Loaded(Object sender, RoutedEventArgs e)
   at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate       
   handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs,
   Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName) 
4

3 に答える 3

2

これら2つのパネルの問題の1つがあなたの問題かもしれないと思います。ドキュメントの備考から;

  • このコレクションを派生Panelクラスで使用しないでください。代わりにInternalChildrenコレクションを使用してください。

  • Panelがデータバインドされている場合、このプロパティはnullを返します。

http://msdn.microsoft.com/en-us/library/system.windows.controls.panel.aspx

于 2012-07-02T12:15:39.727 に答える
1

あなたが書いたコードを考えると、それを知るのは難しいです。スタックトレースが役立ちます。可能なオプション:

  • App.CurrentApp(無条件に使用している場合、キャストはasここで使用するよりも優れています)ではない可能性があります
  • App.Currentnullの可能性があります
  • App.Current.normalTiles
  • slider.Keynullになる可能性があります
  • Gridnullになる可能性があります
  • slider.Valuenullになる可能性があります
  • ContentPanelnullになる可能性があります
  • ContentPanel.Childrennullになる可能性があります

スタックトレースは、それらのどれが当てはまるかを判断するのに役立つはずです。デバッガーの賢明な使用(foreachステートメントにブレークポイントを設定する)も役立つはずです。

于 2012-07-02T12:01:07.133 に答える
1

メソッドの上部にブレークポイントを設定し、1行ずつステップスルーして、その行を実行する直前に(ウォッチウィンドウで、またはインスタンスの上にマウスを置いて)各オブジェクトの値を確認します。その変数/インスタンスの値がである場合を探していますnull

私はから始めます:

(App.Current as App).normalTiles

この行には、3つの問題がある可能性があります。null、 nullまたはnullでないためApp.Current、nullをApp.Current as App生成する、またはnullです。.CurrentAppnormalTiles

于 2012-07-02T12:01:40.147 に答える