2015-09-07 2 views
0

Я новичок в программировании Windows. Я столкнулся с этой проблемой, но не смог решить мою проблему в течение четырех-пяти дней.«MyClass» должен обеспечить реализацию метода интерфейса «SomeMethod»

'SpecialistMetro :: SampleData :: AdministrationItem' должен обеспечить реализацию метода интерфейса «Windows :: Foundation :: EventRegistrationToken для Windows :: UI :: Xaml :: Данные :: INotifyPropertyChanged :: PropertyChanged :: добавить (Windows :: UI :: XAML :: Данные :: PropertyChangedEventHandler ^)»

Найдено некоторую информацию here, но не использовать.

Мой код AdministrationItem.h:

namespace SpecialistMetro 
{ 
namespace SampleData 
{ 
    [Windows::Foundation::Metadata::WebHostHidden] 
    [Windows::UI::Xaml::Data::Bindable] 
    public ref class AdministrationItem : public Windows::UI::Xaml::DependencyObject, public History::IDataSample 
    { 
    private: 
     Platform::String^ _State; 
    public: 
     virtual Platform::String^ getCustomerId(); 
     virtual Platform::String^ getSessionId(); 
     virtual property Platform::String^ State 
     { 
      Platform::String^ get(); 
      void set(Platform::String^ value); 
     } 
     virtual property Platform::String^ ClientName; 
     virtual property Platform::String^ OrganizationName; 
     virtual property Platform::String^ ClientEmail; 
     virtual property Platform::String^ ClientPhoneNumber; 
     virtual property Windows::UI::Xaml::Media::SolidColorBrush^ Color; 
     virtual event Windows::UI::Xaml::Data::PropertyChangedEventHandler^ PropertyChanged; 
     virtual void OnPropertyChanged(Platform::String^ propertyName); 
     virtual void UpdateConnectionInfo(); 
    }; 
} 
} 

Код для AdministrationItem.cpp:

#include "pch.h" 
#include "AdministrationItem.h" 

using namespace SpecialistMetro::SampleData; 

Platform::String^ AdministrationItem::State::get() 
{ 
    return _State; 
} 

void AdministrationItem::State::set(Platform::String^ value) 
{ 
    _State = value; 
    OnPropertyChanged("State"); 
} 

Platform::String^ AdministrationItem::getCustomerId() 
{ 
    return ""; 
} 

Platform::String^ AdministrationItem::getSessionId() 
{ 
    return ""; 
} 

void AdministrationItem::UpdateConnectionInfo() 
{ 
} 

void AdministrationItem::OnPropertyChanged(Platform::String^ propertyName) 
{ 
    PropertyChanged(this, ref new Windows::UI::Xaml::Data::PropertyChangedEventArgs(propertyName)); 
} 
+1

могли бы вы добавить свой код –

+0

код, добавленный в вопросе. –

ответ

1

Сообщение вид объясняет. AdministrationItem отсутствует PropertyChangedEventHandler, что необходимо, потому что у вас есть атрибут Windows::UI::Xaml::Data::Bindable в вашем классе AdministrationItem.

event Windows::UI::Xaml::Data::PropertyChangedEventHandler^ PropertyChanged; 

Подробнее about the BindableAttribute here.

Узнайте, как добавить событие в этом блоге: Data Binding and C++/CX: INotifyPropertyChanged

+0

Разве я этого не сделал? 'виртуальное событие Windows :: UI :: Xaml :: Data :: PropertyChangedEventHandler^PropertyChanged;', делая это. –

+0

Я уже сделал все, что объясняется в блоге. но все равно бесполезно. –

+0

См. Мой класс реализации. –

Смежные вопросы