C #, Xamarin, связывание многих объектов - PullRequest
0 голосов
/ 01 марта 2019

Итак, у меня есть куча объектов Frame, которые я добавляю на экран с помощью кода (их количество является переменным).И, будучи верным MVVM, мне нужно привязать цвет фона каждого к чему-то в модели.Так что привязка проста:

Frame f1 = new Frame();
f1.SetBinding(Frame.BackgroundColorProperty, "BackColor1");
Frame f2 = new Frame();
f2.SetBinding(Frame.BackgroundColorProperty, "BackColor2");

И так далее.Это только быстрый пример, реальная вещь в цикле.И в модели:

Xamarin.Forms.Color BackColor1
{
    get
    {
        return Color.Black;
    }
}

Xamarin.Forms.Color BackColor2
{
    get
    {
        return Color.White;
    }
}

И так далее.Это хорошо работает для нескольких объектов, но что, если есть 50?100?Я не хочу создавать 100 свойств BackColor в классе;так лежит безумиеЯ играю в C # и xamarin всего несколько недель, так что я многому еще предстоит научиться.Как лучше всего оставаться верным MVVM, когда вам нужно привязать большое количество таких объектов?

1 Ответ

0 голосов
/ 01 марта 2019

Должны ли эти цвета изменяться после назначения?Если так, то нет необходимости оставаться в «истинном MVVM», который, как я полагаю, вы имеете в виду «используя привязки».Настоящий MVVM не требует использования привязок для всего, на самом деле, если значение свойства не изменится после создания объекта, тогда использование привязки является излишним.Можно использовать статические значения для свойств и по-прежнему находиться в «истинном MVVM».На самом деле статические значения для свойств лучше, если значения не будут изменяться или даже не изменяться часто, поскольку привязки имеют некоторые накладные расходы на производительность.Таким образом, в основном, каждый раз, когда вы создаете новый Frame, просто статически устанавливайте BackgroundColor.

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