Click here to Skip to main content
12,955,614 members (61,165 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
This part. Commented code is cs.
On compile catch an error:
Error 78 error C3766: 'Sample::NoteInfo' must provide an implementation for the interface method 'System::String ^System::ComponentModel::IDataErrorInfo::default::get(System::String ^)' d:\dev\docstreet\sample\pointInfoStoreClass.h 100

What's incorrect? Why VS compiler consider this not implemented?
#pragma region IDataErrorInfo Members
 
        //Returns an error description set for the item's property
        //String^ IDataErrorInfo.this[String^ columnName] {
        //  get {
        //      return GetColumnError(columnName);
        //  }
        //}
 
        public: property String^ IDataErrorInfo[String^] {
            virtual String^ get(String^ index) override {
                return GetColumnError(index);
            }
        }

Full code:
public ref class NoteInfo : IDataErrorInfo {
        int fDay;
        int fMonth;
        int fYear;
        int fNoteID;
        //References the item's owner
        ProjectNotes^ owner;
        //Stores error descriptions for the Day, Month, Year and NoteID properties
        Hashtable^ propertyErrors;
        //Stores an error description for the item
        String^ fNoteError;
 

    public: NoteInfo(int noteID, int day, int month, int year) {
            fNoteID = noteID;
            fDay = day;
            fMonth = month;
            fYear = year;
            //Set errors to empty strings
            propertyErrors = gcnew Hashtable();
            propertyErrors->Add("Day", "");
            propertyErrors->Add("Month", "");
            propertyErrors->Add("Year", "");
            propertyErrors->Add("NoteID", "");
            fNoteError = "";
            Owner = nullptr;
        }
 
    public: property int NoteID {
            int get() { return fNoteID; }
            void set(int value) {
                if(fNoteID == value) return;
                fNoteID = value;
            }
        }
 
    public: void ClearErrors() {
            SetColumnError("Day", "");
            SetColumnError("Month", "");
            SetColumnError("Year", "");
            fNoteError = "";
        }
 
        //Sets an error for an item's property
    public: void SetColumnError(String^ elem, String^ error) {
            if(propertyErrors->ContainsKey(elem)) {
                if((String^)propertyErrors[elem] == error) return;
                propertyErrors[elem] = error;
            }
        }
 
        //Gets an error for an item's property
    public: String^ GetColumnError(String^ elem) {
            if(propertyErrors->ContainsKey(elem))
                return (String^)propertyErrors[elem];
            else
                return "";
        }
 
        //The owner collection
    internal: property ProjectNotes^ Owner {
            ProjectNotes^ get() { return owner; }
            void set(ProjectNotes^ value) { owner = value; }
        }
 

#pragma region IDataErrorInfo Members
 
        //Returns an error description set for the item's property
        //String^ IDataErrorInfo.this[String^ columnName] {
        //  get {
        //      return GetColumnError(columnName);
        //  }
        //}
 
        public: property String^ IDataErrorInfo[String^] {
            virtual String^ get(String^ index) override {
                return GetColumnError(index);
            }
        }
 
        //Returns an error description set for the current item
    public: property String^ Error {
            virtual String^ get() { return fNoteError; }
 
        }
#pragma endregion
    };
Posted 29-Nov-12 0:17am

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

Found the solution

public: property String^ default[String^] {
            virtual String^ get(String^ index) {
                return GetColumnError(index);
            }
        }
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 6,719
CHill60 3,550
Maciej Los 3,153
ppolymorphe 2,060
Jochen Arndt 1,975


Advertise | Privacy | Mobile
Web02 | 2.8.170525.1 | Last Updated 30 Nov 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100