2009-02-16 110 views
0

我創建了一個(System.Windows.Controls.Primitives。)彈出窗口,其中包含一個Treeview,我用從文件讀入的數據填充。 Popup是在代碼中而不是在xaml中創建的。我想以類似於Silverlight工具包中CheckedTreeViewItemSample.xaml的方式將複選框添加到樹視圖中。把複選框放在TreeView中使用代碼隱藏不xaml

我無法將xaml轉換爲代碼,因爲我不太瞭解HierarchicalDataTemplate如何工作以及綁定是如何工作的。事實上,我發現Silverlight對象模型非常令人困惑!

我已經完成了相當多的搜索,但我還沒有找到如何在代碼隱藏方面做到這一點。我需要定義xaml並使用XamlReader嗎?

在此先感謝...

回答

1

你需要把控制到要添加的treeviewitems的頭屬性:

 var myTreeViewItem = new TreeViewItem(); 
     var myContentHolder = new StackPanel(); 
     var myCheckBox = new CheckBox(); 
     TextBlock myTextBlock = new TextBlock(); 
     myTextBlock.Text = "blah"; 
     //add more controls 
     myContentHolder.Children.Add(myCheckBox); 
     myContentHolder.Children.Add(myTextBlock); 
     myTreeViewItem.Header = myContentHolder; 

瞧。說實話,你在第一次使用Silverlight的時候就這樣做了,然後用xaml來做這件事,而不再回頭去做代碼。另外,如果您將要在頭文件中使用的控件作爲用戶控件包裝,則會更容易。然後,您可以將該自定義控件轉換爲另一個文件(當然,基於xaml的);

+0

啊......得了吧!謝謝你的建議。一旦這個非常明顯的指出,似乎很清楚:o) – fran 2009-02-18 09:29:52