将项目添加到树视图C#时出错
本文关键字:出错 视图 项目 添加 | 更新日期: 2023-09-27 18:28:05
我已经编写了以下代码来创建树视图:它从sqlCE服务器读取数据并根据该数据生成视图。在我进入while内部循环以在标题中添加子项之前,它运行良好。
private void ClientTree_Initialized(object sender, EventArgs e)
{
string moduleCat = null;
string Cname = null;
SqlCeConnection _con = new SqlCeConnection(@"Data Source=C:'Users'Family'Desktop'Tranchulas projects'ControlCenter'ControlCenter'bin'Debug'ClientDB.sdf");
_con.Open();
SqlCeDataReader _reader = null;
SqlCeDataReader _reader1 = null;
SqlCeCommand readMod = new SqlCeCommand(@"SELECT DISTINCT ModuleID FROM ClientRecord", _con);
_reader = readMod.ExecuteReader();
while(_reader.Read())
{
moduleCat = _reader["ModuleID"].ToString();
treeItem = new TreeViewItem();
treeItem.Header = moduleCat;
SqlCeCommand readName = new SqlCeCommand(@"SELECT Cname FROM ClientRecord WHERE (ModuleID = '" + moduleCat + @"')", _con);
_reader1 = readName.ExecuteReader();
while (_reader1.Read())
{
Cname = _reader["Cname"].ToString();
treeItem.Items.Add(new TreeViewItem() { Header = Cname });
ClientTree.Items.Add(treeItem);
}
}
}
它给出了一个例外:
System.Windows.Markup.XamlParseException occurred
HResult=-2146233087
Message='Initialization of 'System.Windows.Controls.TreeView' threw an exception.' Line number '10' and line position '99'.
Source=PresentationFramework
LineNumber=10
LinePosition=99
第10行是:
<TreeView x:Name="ClientTree" Height="350.4" Width="164.2" HorizontalAlignment="Left" VerticalAlignment="Top" Initialized="ClientTree_Initialized" />
如果在注释掉内部while循环时问题消失了,那么它不可能是xaml中的问题。(因为什么都没变)对吧??但是,您的异常声明这是一个xamlParseException,很奇怪。
这里可以做的最好的事情是将InitializeComponent()行放在try-catch语句中,并在catchblock中设置断点。现在,您可以访问完整的堆栈,其中包含您需要的所有内部异常信息!祝你好运
InitializeComponent在代码隐藏的构造函数中。
try
{
InitializeComponent();
}
catch ( Exception ex )
{
// set breakpoint here, and watch StackTrace
}