Ошибки компилятора C++ в xamltypeinfo.g.cpp

Должно быть, я упускаю что-то очевидное, но я м не знаю что.

Я создал пустое метро-приложение на C++ и только что добавил модель, с которой я буду связываться в своем пользовательском интерфейсе, однако я получаю ряд ошибок компилятора, связанных с xamltypeinfo.g.cpp, и я не уверен, что именно Я пропустил.

Мой заголовочный файл выглядит так:

#pragma once
#include "pch.h"
#include "MyColor.h"

using namespace Platform;

namespace CppDataBinding
{
    [Windows::UI::Xaml::Data::Bindable]
    public ref class MyColor sealed : Windows::UI::Xaml::Data::INotifyPropertyChanged
    {
    public:
        MyColor();
        ~MyColor();

        virtual event Windows::UI::Xaml::Data::PropertyChangedEventHandler^ PropertyChanged;
        property Platform::String^ RedValue
        {
            Platform::String^ get()
            { 
                return _redValue;
            }
            void set(Platform::String^ value)
            {
                _redValue = value;
                RaisePropertyChanged("RedValue");
            }
        }

    protected:
        void RaisePropertyChanged(Platform::String^ name);

    private:
        Platform::String^ _redValue;
    };
}

и мой файл cpp выглядит так:

#include "pch.h"
#include "MyColor.h"

using namespace CppDataBinding;

MyColor::MyColor()
{
}

MyColor::~MyColor()
{
}

void MyColor::RaisePropertyChanged(Platform::String^ name)
{
    if (PropertyChanged != nullptr)
    {
        PropertyChanged(this, ref new  Windows::UI::Xaml::Data::PropertyChangedEventArgs(name));
    }
}

Ничего сложного, но при компиляции я получаю ошибки в xamltypeinfo.g.cpp, указывающие на то, что MyColorне определен в CppDataBinding.

Соответствующий сгенерированный код выглядит следующим образом.:

if (typeName == "CppDataBinding.MyColor")
{
    userType = ref new XamlUserType(this, typeName, GetXamlTypeByName("Object"));
    userType->Activator = ref new XamlTypeInfo::InfoProvider::Activator(
                            []() -> Platform::Object^ 
                            { 
                                return ref new CppDataBinding::MyColor(); 
                            });
    userType->AddMemberName("RedValue", "CppDataBinding.MyColor.RedValue");
    userType->SetIsBindable();
    xamlType = userType;
}

Если я удалю атрибут Bindableиз MyColor, код скомпилируется.

Может ли кто-нибудь сказать мне, какую очевидную вещь я упустил, чтобы я мог сделать себе фейспалм и решить проблему?

9
задан Richard Banks 22 March 2012 в 02:37
поделиться