在后面的代码中创建DataTemplate时出错

本文关键字:DataTemplate 出错 创建 代码 在后面 | 更新日期: 2023-09-27 18:06:58

我试图在代码后面创建一个DataTemplate:

StringReader stringReader = new StringReader(
    @"<DataTemplate      
        xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
        xmlns:local=""clr-namespace:Clarity.Demo.ListDragDrop;assembly=Clarity.Demo.ListDragDrop"">
        <DataTemplate.Resources>
           <local:PlayerAdorner x:Key=""adorner""/>
        </DataTemplate.Resources>
        <local:PlayerControl 
            Margin=""5""
            local:DragDropHelper.AdornerLayer = ""adornLayer""
            local:DragDropHelper.DragDropControl = ""{StaticResource adorner}""
            local:DragDropHelper.DropTarget = ""lineup""
            local:DragDropHelper.IsDragSource = ""true"" />
        </DataTemplate > ");
XmlReader xmlReader = XmlReader.Create(stringReader);
DataTemplate laneTemplate = XamlReader.Load(xmlReader) as DataTemplate;

我得到一个XAML异常,说'x'是第5行中未声明的名称的空格。我猜x:Key=""adorner""有问题,但很奇怪,因为如果不是在代码中创建这个,我复制它并粘贴在XAML上,它就可以工作了!

我不确定这是正确的做法。原始代码在窗口中有装饰器资源。资源,但是我不知道如何在代码中创建DataTemplate时访问它,所以我把它作为DataTemplate. resource .

有人对此有任何线索吗?

在后面的代码中创建DataTemplate时出错

包含命名空间:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"