Есть ли лучший способ добавить элементы класса в ячейку ввода в Xamarin и иметь заполнитель, если ноль? - PullRequest
1 голос
/ 31 мая 2019

Я хочу иметь страницу, которая имеет табличное представление только с ячейками ввода.Это функция «Обновить данные» внутри приложения.Я хочу сделать его более удобным для пользователя, так как я разделяю входные ячейки на две части и заполняю верхние данными, которые уже находятся в объекте, и в качестве пустого значения вместо этого я помещаю заполнитель.

Пока что у меня везде есть ифы и другие.Я проверяю каждый атрибут и вижу, является ли он нулевым.Если нет, я помещаю его значение в ячейку ввода.Если это так, я вместо этого добавляю заполнитель.

            if (car.Make != null)
                Weknow.Add(new EntryCell {Label = "Make", Text = car.Make});
            else
                Wedont.Add(new EntryCell {Label = "Make", Placeholder = "Eg. Ford"});

            if (car.Manufacturer != null)
                Weknow.Add(new EntryCell {Label = "Manufacturer", Text = car.Manufacturer});
            else
                Wedont.Add(new EntryCell {Label = "Manufacturer", Placeholder = "Eg. Ford Werke AG"});

            if (car.Plant != null)
                Weknow.Add(new EntryCell {Label = "Plant", Text = car.Plant});
            else
                Wedont.Add(new EntryCell {Label = "Plant", Placeholder = "Eg. Koeln-Niehl"});

            if (car.ModelYear != null)
                Weknow.Add(new EntryCell {Label = "ModelYear", Text = car.ModelYear});
            else
                Wedont.Add(new EntryCell {Label = "ModelYear", Placeholder = "Eg. 2010"});

            if (car.SequentialNumber != null)
                Weknow.Add(new EntryCell {Label = "SequentialNumber", Text = car.SequentialNumber});
            else
                Wedont.Add(new EntryCell {Label = "SequentialNumber", Placeholder = ""});

            if (car.Model != null)
                Weknow.Add(new EntryCell {Label = "Model", Text = car.Model});
            else
                Wedont.Add(new EntryCell {Label = "Model", Placeholder = "Eg. Focus"});

Weknow - это раздел таблицы, содержащий ячейки Entry, которые имеют значения, а Wedont - это раздел с пустыми и заполнителями.

Конечный результат таков: https://imgur.com/pr2ezQr

Все работает, но мне интересно, есть ли какой-нибудь более простой способ пройти через объект и посмотреть, являются ли свойства нулевыми, и если они есть,тогда вместо этого должен быть заполнитель.Я думал о наличии Связывающего контекста, но я хотел сделать все это в коде, а не в XAML.Но если это можно сделать таким образом, я мог бы попробовать.

Спасибо!

1 Ответ

0 голосов
/ 31 мая 2019

Способ заполнителя работает в формах Xamarin только в том случае, если свойство текста равно нулю или пусто.Если текст не нулевой или пустой, то текст будет отображаться, а заполнитель не будет.Учитывая это, вы можете обновить ваши вызовы до чего-то вроде:

Weknow.Add(new EntryCell {Label = "Make", Placeholder = "Eg. Ford", Text = car.Make});
Weknow.Add(new EntryCell {Label = "Manufacturer", Placeholder = "Eg. Ford Werke AG", Text = car.Manufacturer});
Weknow.Add(new EntryCell {Label = "Plant", Placeholder = "Eg. Koeln-Niehl", Text = car.Plant});

// Continue with other cells.

Это позволяет вам отбрасывать условные операторы.

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