C# WPF получает доступ к моей модели вида из моей модели - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в MVVM и пытаюсь сделать простую вещь, например написать свойство в моем классе со значением из моей модели представления.

У меня есть модель представления, которая содержит значение SettingsBarWidth (это значение может быть написано на мой взгляд). Это значение должно быть прочитано моим Bar классом.

Как мне установить мой Width из моего Bar класса со значением в моей ViewModel (SettingsBarWidth)?

ViewModel:

    private int _SettingsBarWidth;
    public int SettingsBarWidth
    {
        get { return _SettingsBarWidth; }
        set
        {
            if (value != _SettingsBarWidth)
            {
                SetProperty(ref _SettingsBarWidth, value);
            }
        }
    }

Мой класс содержит это:

public class Bar
{
    public string ID { get; set; }
    public Point CenterPoint { get; set; }
    public double Length { get; set; }
    public double Width  { get; set; }          
    public double Angle { get; set; }
    public List<Point> Points { get; set; }
}

1 Ответ

0 голосов
/ 09 апреля 2020

Правильный способ добиться этого - использовать вашу модель в качестве вспомогательного экземпляра для вашей ViewModel следующим образом.

internal class BarModel
{
    public int SettingsBarWidth { get; set; }
}

internal class BarViewModel : INotifyPropertyChanged
{
    private readonly BarModel model;

    public BarViewModel(BarModel model)
    {
        this.model = model;
    }

    public int SettingBarWidth
    {
        get { return this.model.SettingsBarWidth; }
        set
        {
            this.model.SettingsBarWidth = value;
            OnPropertyChanged();
        }
    }
}

При этом вы можете видеть, что Модель не знает о ViewModel, и вы также не нужно отображать свойства обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...