在代码隐藏中创建 DataTemplate 时出错
Error on creating DataTemplate in code behind
我正在尝试使用以下代码在后面的代码中创建一个 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 行中未声明名称的 space。我猜 x:Key=""adorner""
有问题,但是这很奇怪,因为如果我不是在代码中创建它,而是复制它并粘贴到 XAML 上,它就可以工作!
我不确定这是正确的做法。原代码在Window.Resources中有装饰资源,但是我在代码中创建DataTemplate时没有弄清楚如何访问它,所以我把它作为DataTemplate.Resource.
有人对此有任何线索吗?
包括命名空间:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
我正在尝试使用以下代码在后面的代码中创建一个 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 行中未声明名称的 space。我猜 x:Key=""adorner""
有问题,但是这很奇怪,因为如果我不是在代码中创建它,而是复制它并粘贴到 XAML 上,它就可以工作!
我不确定这是正确的做法。原代码在Window.Resources中有装饰资源,但是我在代码中创建DataTemplate时没有弄清楚如何访问它,所以我把它作为DataTemplate.Resource.
有人对此有任何线索吗?
包括命名空间:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"