问题是将一些复杂的控件加载到堆栈面板中。 我有几个类似的TreeListControls(来自devexpress),它有自己的x:我在.cs文件中使用的Name属性。
我更愿意将它们保存在单独的.xaml中并在需要时加载。
我如何加载它们?我还没找到任何有效的解决方案。我发现Application.LoadComponent不能正常工作......
目前,我看到的唯一方法是使用“可见性”属性,但它是完全的业余主义......
答案 0 :(得分:0)
您可以为此目的使用XAML reader
答案 1 :(得分:0)
为什么不创建UserControls?您可以从代码中实例化它们,并在内容控件或网格中添加或删除它们。
RootGrid.Children.Add(new WhateverControl());
或者您是否需要在运行时编辑xaml?
Application.LoadComponent对我来说至少可以创建非UI对象
Application.LoadComponent(Root, new Uri("/SilverlightClient;component/NavigationTreeConfig.xaml", UriKind.Relative));
当我需要在代码中创建XAML时,我将XamlReader与字符串一起使用。尚未尝试使用文件。
ContentTemplate = (DataTemplate) XamlReader.Load(
"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'><TextBlock>TemplateSelectorError: " + errorMessage + "</TextBlock></DataTemplate>");