protected override void OnCreateViewModelProperties()
        {
            var objectToEdit = Model;

            Code            = CreateValueProperty(objectToEdit.Code);
            Code.UIMetadata = new UIMetadata
            {
                LabelProvider       = () => "Code",
                DescriptionProvider = () => "Description of 'Code' property."
            };

            Age            = CreateValueProperty(objectToEdit.Age);
            Age.UIMetadata = new UIMetadata
            {
                LabelProvider       = () => "Age",
                DescriptionProvider = () => "Description of 'Age' property."
            };

            Country            = CreateLookupProperty(objectToEdit.Country, Database.GetCountriesLookupValues);
            Country.UIMetadata = new UIMetadata
            {
                LabelProvider       = () => "Country",
                DescriptionProvider = () => "Description of 'Country' property."
            };

            Rank            = CreateEnumProperty(objectToEdit.Rank, RankEnumUIMetadataProvider.GetUIMetadata);
            Rank.UIMetadata = new UIMetadata
            {
                LabelProvider       = () => "Rank",
                DescriptionProvider = () => "Description of 'Rank' property."
            };
        }
        protected override void OnCreateViewModelProperties()
        {
            var objectToEdit = Model;

            // HOW TO : create a single valued view model property
            Age            = CreateValueProperty(objectToEdit.Age);
            Age.UIMetadata = new UIMetadata
            {
                LabelProvider       = () => "Age",
                DescriptionProvider = () => "Description of 'Age' property."
            };

            // HOW TO : create a lookup value view model property
            Country            = CreateLookupProperty(objectToEdit.Country, Database.GetCountriesLookupValues);
            Country.UIMetadata = new UIMetadata
            {
                LabelProvider       = () => "Country",
                DescriptionProvider = () => "Description of 'Country' property."
            };

            // HOW TO : create an enum view model property
            // NOTE : The lookup items are of type "IEnumItem<Rank>"
            Rank            = CreateEnumProperty(objectToEdit.Rank, RankEnumUIMetadataProvider.GetUIMetadata);
            Rank.UIMetadata = new UIMetadata
            {
                LabelProvider       = () => "Rank",
                DescriptionProvider = () => "Description of 'Rank' property."
            };
        }