Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Xaml文件创建数据对象_C#_.net_Xaml - Fatal编程技术网

C# 从Xaml文件创建数据对象

C# 从Xaml文件创建数据对象,c#,.net,xaml,C#,.net,Xaml,目前我正在尝试加载一些Xaml文件来创建testdata 我使用Xaml文件在VisualStudio()中为WPF设计器创建数据。 现在我想在单元测试中重用它们。我需要以编程方式加载它们。下面是一个小测试程序: // The data model class TestItem { public string Name { get; set; } public decimal Value { get; set; } public string Category { get

目前我正在尝试加载一些Xaml文件来创建testdata

我使用Xaml文件在VisualStudio()中为WPF设计器创建数据。 现在我想在单元测试中重用它们。我需要以编程方式加载它们。下面是一个小测试程序:

// The data model
class TestItem
{
    public string Name { get; set; }
    public decimal Value { get; set; }
    public string Category { get; set; }
}
Xaml数据文件:

<sys:ArrayList xmlns:sys="clr-namespace:System.Collections;assembly=mscorlib"
               xmlns:local="clr-namespace:WpfApplication1">
  <local:TestItem Name="Item1" Value="123" Category="Cat1" />
  <local:TestItem Name="Item2" Value="456" Category="Cat1" />
  <local:TestItem Name="Item3" Value="789" Category="Cat2" />
</sys:ArrayList>
LoadAsync方法引发XamlParseException

'无法创建未知类型 “{clr命名空间:WpfApplication1}TestItem”

我需要注册我的TestItem课程吗?这是解决我问题的正确方法,还是我在这里使用不当?我还花了一些时间在-Namespace中。但我无法让它工作

编辑:


在上面的示例代码中,我将Build操作设置为None。当我将其设置为DesignData时,无法找到该文件。

我相信您的方法应该可以正常工作


您提到您正在重用相同的代码来编写单元测试(如果我理解正确的话,这就是您得到异常的地方)。如果您正在编写测试并在定义了
TestItem
的程序集中加载XAML,则需要在
xmlns:local
属性中指定程序集名称。

我发现了错误。公开测试课解决了我的问题

// The data model
public class TestItem
{
    public string Name { get; set; }
    public decimal Value { get; set; }
    public string Category { get; set; }
}

我在一个程序集中创建了上述示例代码。将xmlns:local设置为正确的命名空间。我已将Xaml文件的构建操作设置为“无”(请参阅我的更新)。还是不行。
// The data model
public class TestItem
{
    public string Name { get; set; }
    public decimal Value { get; set; }
    public string Category { get; set; }
}