wpf
  • xaml
  • 2011-10-12 67 views 0 likes 
    0

    我正尝试将自定义用户控件加载到数据模板中,并且到目前为止我拥有以下代码。使用xaml解析器加载自定义用户控件

    var xaml = @"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
                xmlns:rdb='clr-namespace:Admintool.UI.ResourceEditorWpf;assembly=program1.exe' > 
             <rdb:MaskedLabel 
              Content='{Binding " + e.PropertyName + "}'></rdb:MaskedLabel> </DataTemplate>"; 
    
         var stringReader = new StringReader(xaml); 
         var xmlReader = XmlReader.Create(stringReader); 
         var cellTemplate = (DataTemplate)XamlReader.Load(xmlReader); 
    

    其中,e.propertyname包含一个字符串。 运行此代码我得到异常

    'rdb' is an undeclared namespace. Line 3, position 30. 
    

    谁能解释如何正确引用的程序集在这种情况下?

    回答

    1
    <DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'> 
    xmlns:rdb='clr-namespace:Admintool.UI.ResourceEditorWpf;assembly=program1.exe' 
    

    rdb名称空间在DataTemplate的结束标记之外声明。它不应该是结束标记为DataTemplate中像这里面 -

    <DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
           xmlns:rdb='clr-namespace:Admintool.UI.ResourceEditorWpf;assembly=program1.exe'> 
    

    编辑: 你为什么不能有这样的模板在XAML文件中声明,并从那里你可以使用XAML分析器加载它。尝试看看这个链接 - http://blogs.msdn.com/b/ashish/archive/2007/08/14/dynamically-loading-xaml.aspx

    +0

    哎呀多数民众赞成在一个错字的问题,XAML仍然会抛出错误 – Marcom

    +0

    我已经更新了我的答案。请看一看 –

    相关问题