在我的程序中,我将TreeViewItem
它Header
设置为一个数值integer
。为了将 转换Header
为直接int
值,我传递给一个名为getNumber
.
我的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;
}
我在程序的几个不同区域中以相同的方式传递给这个函数,但在其中一个区域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
说它不能StackPanel
转换为TextBlock
. 来自哪里StackPanel
……?
谢谢你的帮助。