我创建了一个(System.Windows.Controls.Primitives。)弹出窗口,其中包含一个Treeview,我正在填充从文件读入的数据。 Popup是在代码而不是在xaml中创建的。我想以类似于Silverlight Toolkit中的CheckedTreeViewItemSample.xaml的方式向树视图添加复选框。
我无法将xaml转换为代码,因为我真的不了解HierarchicalDataTemplate的工作原理以及绑定的工作原理。事实上,我发现Silverlight对象模型非常混乱!
我已经做了很多搜索,但我还没有找到如何在代码隐藏中做到这一点。我是否需要定义xaml并使用XamlReader?
提前致谢...
答案 0 :(得分:1)
您需要将控件放入要添加的treeviewitems的header属性中:
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,并且永远不要回到代码中。如果你将你要在头文件中使用的控件包装为usercontrol,也会更容易。然后,您可以将该自定义控件转换为另一个文件(当然,基于xaml;)
答案 1 :(得分:0)
这会在我的电脑上引发错误。我唯一可以放入标题但没有代码隐藏的例外是文本。
(我相信它与此http://silverlight.codeplex.com/WorkItem/View.aspx?WorkItemId=2597相关)