2013-04-23 3 views
2

나는 foillowing의 XAML을로드하기 위해 노력하고있어 함께 작동하지 않는 것XamlReader.Parse는 HierarchicalDataTemplate

이 (내 기계가 프랑스어로 구성되는

'Impossible de créer le type inconnu 'HierarchicalDataTemplate'.' numéro de ligne '1' et position de ligne '2'.

,이 메시지가 의미 : "를 UNK을 만들 수 없습니다 m이 오류가 nown 유형 HierarchicalDataTemplate ").

누군가가 왜 그런 생각을 갖고 있습니까? xaml 스 니펫은 xaml 파일에 직접 쓰여질 때 완벽하게 작동합니다.

감사합니다.


편집

나는 간단한 버전으로 테스트했다 :

string template = "<HierarchicalDataTemplate ItemsSource=\"{Binding Items}\">" + 
           "<TextBox Text=\"Test\"/>"+ 
          " </HierarchicalDataTemplate>"; 

을하고 문제는 동일합니다.


Edit2가

문제가 넓은과`HierarchicalDataTemplate '

string test = "<TextBox Text=\"Test\" />"; 
var ret = XamlReader.Parse(test); 

같은 오류를 생성과 관련이없는 것 같다 확인

...

답변

3

좋아요. 문제가 발견되었습니다.

John Bowen으로 말하면 첫 번째 문제는 처리 할 수없는 이벤트 처리기입니다. 두 번째 문제는 xaml에 주 네임 스페이스가 없다는 것입니다.

string template = "<HierarchicalDataTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" ItemsSource=\"{Binding Items}\">" + 
        "<CheckBox Tag=\"{Binding Champ1}\" >" + 
         "<CheckBox.Template>" + 
          "<ControlTemplate>" + 
           "<TextBlock Background=\"{Binding Path=Background," + 
                   "RelativeSource={RelativeSource AncestorType=CheckBox}}\"" + 
              " Text=\"{Binding Champ1}\" />" + 
          "</ControlTemplate>" + 
         "</CheckBox.Template>" + 
        "</CheckBox>" + 
       " </HierarchicalDataTemplate>"; 

this.ItemTemplate = (DataTemplate)XamlReader.Parse(template); 
2

당신은 사용할 수 없습니다 이벤트 핸들러 XamlReader은 XAML의 코드 숨김에 있어야하기 때문에 XAML에서는 구문 분석 된 XAML에 분명히 존재하지 않습니다.

+0

난 그냥 핸들러를 제거 테스트 및 오류 메시지가 여전히 동일합니다 :

그래서이 코드가 작동합니다. – Shimrod

+0

사실 더 간단한 버전을 사용하여 테스트했습니다 :'Text template text = \ "Test \"/> "+ " ";"같은 오류 메시지가 나타나면서 여전히 실패합니다. – Shimrod