MVVM Привязка свойства объекта - PullRequest
0 голосов
/ 28 ноября 2018

Возникают проблемы с привязкой, если я связываю строковый тип Property, все работает нормально, но если я пытаюсь связать в View, свойство Property Property xaml не загружается.

Нет ошибок или предупреждений.

Обновленная модель

Модель:

     public class Part : BindableObject
{
    public int Id { get; set; }
    public string Brand { get; set; }

    public string _BrandImage;
    public string BrandImage
    {
        get { return _BrandImage; }
        set
        {
            _BrandImage = value;
            OnPropertyChanged();
        }
    }

    public string _Name;
    public string Name
    {
        get { return _Name; }
        set
        {
            _Name = value;
            OnPropertyChanged();
        }
    }
    public string Article { get; set; }
    public string Mfg { get; set; }
    public string Image { get; set; }
    public string Description { get; set; }
    public List<Offer> Offers { get; set; }   


        };

            return result;
        }

    }    

Модель представления:

public class PartDetailViewModel :  BindableBase
    {
        private Part part;
        public Part Part
        {
            get { return part; }
            set { SetProperty(ref part, value); }
        }   

        public PartDetailViewModel(INavigationService navigationService) 
        {
            Part = part.GetPartById();
        }   
    }

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Удалить это свойство из модели и это поможет

 public List<Offer> Offers { get; set; }   
0 голосов
/ 28 ноября 2018

Вам необходимо унаследовать BindableObject и уведомить представление об изменении свойства внутри установщика set {} для свойств, которые вы связываете в представлении.Я изменил ваш код ниже для свойства Name, вы можете изменить его в зависимости от ваших требований к другим полям.

public class Part : BindableObject
{
    public int Id { get; set; }
    public string Brand { get; set; }
    public string BrandImage { get; set; }

    private string _Name;
    public string Name
    {
        get { return _Name; }
        set
        {
            _Name = value;
            OnPropertyChanged();
        }
    }
    public string Article { get; set; }
    public string Mfg { get; set; }
    public string Image { get; set; }
    public string Description { get; set; }
    public List<Offer> Offers { get; set; }
}
...