wpf
  • xaml
  • 2011-10-12 3 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

    내 대답을 업데이트했습니다. 한번 봐주세요 –

    관련 문제