2013-08-19 27 views
1

我已經編寫了下面的代碼來創建一個樹視圖: 它從sqlCEserver讀取數據並生成視圖。在我進入inner while循環以在頭文件中添加子項之前,它工作正常。將項目添加到treeview C時出錯#

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" /> 

回答

0

如果問題消失了,當你註釋掉內while循環,那麼它可以」在xaml中是個問題。 (因爲沒有任何改變)對嗎?但是,你的例外聲明它是一個xamlParseException,很奇怪。

您可以在此處執行的最佳操作是將InitializeComponent()行放入try-catch語句中,並在catchblock中設置斷點。現在您可以訪問完整的stacktrace,並獲得您所需的信息! 祝你好運。

InitializeComponent位於代碼隱藏的構造器中。

try 
{ 
    InitializeComponent(); 
} 
catch (Exception ex) 
{ 
    // set breakpoint here, and watch StackTrace 
} 
+0

是沒有改變! 我嘗試了try-catch語句,它從不捕獲任何異常。 你能否建議在頭文件中添加項目的其他方法? – SparkWerk

相關問題