XamlReader
을 사용하여 런타임에 DataTemplate을로드하려고하지만 "접두사 'x'가 네임 스페이스에 매핑되지 않습니다."라는 예외가 발생합니다. 내가 DataTemplate을에 x:Key="ValidationResponseTemplate"
를 추가하는 경우 여기"접두사 'x'는 네임 스페이스에 매핑되지 않습니다."
ResourceDictionary dictionary = XamlReader.Parse(myXamlString) as ResourceDictionary;
재미있는 부분이있어이 그것을 읽는 것 코드가
<xm:ResourceDictionary
xmlns:xm="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:do="clr-namespace:MyLibrary.DataObjects;assembly=MyLibrary.DataObjects"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<xm:DataTemplate DataType="{x:Type do:ValidationResponse}">
<xm:StackPanel Orientation="Horizontal">
<xm:Label>MessageID</xm:Label>
<xm:TextBox Text="{Binding Path=MessageID}"/>
</xm:StackPanel>
</xm:DataTemplate>
</xm:ResourceDictionary>
:
이
내가XamlReader
에 전달있어 XML 문자열입니다 그것은 예외없이 구문 분석합니다. 그러나, 그 자체로
.xaml
키의 DataTemplate을 지정할 수 없기 때문에 (런타임에 가져올 때까지 템플릿에 대해 알지 못하기 때문에) 나는 그렇게 할 수 없습니다.
x
네임 스페이스는 프로그램 자체의 .xaml
과 구문 분석하려는 XML 조각 모두에 정의됩니다.
전체적인 목표 : 런타임시 디스플레이 모양을 변경하고 클라이언트가 컴파일시에 알지 못했던 XML 데이터를 표시하는 데 새로운 DataTemplates를 제공 할 수 있어야합니다.