MyClass.xaml中的部分类无法被MyClass.xaml.cs中的部分类识别

时间:2013-01-10 14:34:58

标签: wpf xaml code-behind partial-classes

我有一个类,部分在XAML中定义,部分在代码中定义:

文件 ElementResource.xaml 如下所示:

<ResourceDictionary  x:Class="TestElement.Views.ElementResource"
                     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                     xmlns:local="clr-namespace:TestElement.Views"
                     xmlns:vm="clr-namespace:TestElement.ViewModels">

    <DataTemplate x:Key="TestTemplate"  DataType="{x:Type vm:TestElementViewModel1}">
    </DataTemplate>

</ResourceDictionary>

类* ElementResource的其余部分在文件 ElementResource.xaml.cs 中的代码中定义,如下所示:

using System.ComponentModel.Composition;
using System.Windows;

namespace TestElement.Views
{
    [Export(typeof(ResourceDictionary))]
    public partial class ElementResource : ResourceDictionary
    {
    }
}

由于某种原因,在“代码隐藏”中无法识别XAML中定义的类部分:

Not recognized

此外,XAML中定义的DataTemplate在初始化后不包含在资源字典中。

我尝试过构建和重建 Ctrl + Shift + s 并仔细检查了部分类here的要求。

我错过了什么?

3 个答案:

答案 0 :(得分:3)

好的,我明白了:我从另一个项目中复制并粘贴了xaml文件,并将文件粘贴到当前项目中,将 BuildAction 属性更改为 none 我没有注意到......将它转换为 Page 会让xaml部分知道...

感谢大家的帮助!

答案 1 :(得分:1)

X:类= “TestElement.Views.ElementResource”

这是你的完整集会名称吗?尝试添加所有部分,然后应该被识别。

答案 2 :(得分:1)

在您的XAML中,您是否在ResourceDictionary前面缺少“local:”?

<local:ResourceDictionary  x:Class="TestElement.Views.ElementResource"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:TestElement.Views"
    xmlns:vm="clr-namespace:TestElement.ViewModels">

    <DataTemplate x:Key="TestTemplate"  DataType="{x:Type vm:TestElementViewModel1}">
    </DataTemplate>

</local:ResourceDictionary>