0

私のプログラムでは、数値に設定されていTreeViewItemます。をストレートな値に変換するために、 という関数に渡します。HeaderintegerHeaderintgetNumber

私のgetNumber機能:

この関数は、この以前に尋ねられた質問から来ています。

//Gets the number contained in a Node's header
public static int getNumber(string parentNodeHeader)
{
    int curNumber = 0;
    Int32.TryParse(parentNodeHeader, out curNumber);
    return curNumber;
}

プログラムのいくつかの異なる領域で同じ方法でこの関数に渡しますが、そのうちの 1 つでstring正しく渡されません。デバッガーでは、( ) は数値ではなく値としてparentNodeHeader表示されます。"System.Windows.Controls.StackPanel"なぜこれが起こっているのか分かりません。

関数への動作中の呼び出しと、動作していない呼び出しについて、同じコードを使用します。

int curNumber = getNumber(SelectedItem.Header.ToString());

なぜこれが起こるのでしょうか? どうすれば修正できますか?

アップデート:

getNumberこれを追加して、関数への呼び出しを変更しました...

var selectedHeader = (TextBlock)SelectedItem.Header; //The header is now a TextBlock
int curNumber = getNumber(selectedHeader.Text);

理論的にはこれは機能するはずですが、InvalidCastExceptionキャストできなかったというメッセージが表示さStackPanelTextBlockます。どこStackPanelから来ている...?

ご協力いただきありがとうございます。

4

1 に答える 1