Настройка цвета кнопки в MonoTouch.Dialog - PullRequest
1 голос
/ 20 июня 2011

У меня есть следующий код:

[OnTap ("Account")]
[Alignment (UITextAlignment.Center)]
[Entry ("Create ScanDo! Account")]
public string Login;

И я хотел бы установить цвет фона ячейки динамически, основываясь на содержимом другого поля, а затем после нажатия кнопки. Может ли кто-нибудь указать мне направление с некоторыми образцами?

Спасибо, Rick

Ответы [ 3 ]

2 голосов
/ 22 июня 2011

Ответ, который я придумал:

btnLogin = new StyledStringElement("", delegate {Account();})

Чтобы определить объект, добавьте его в RootElement, затем:

btnLogin.BackgroundColor = UIColor.Green;

Чтобы установить цвет!Этот метод позволил мне установить цвет, шрифт, размер и заголовок.

Отличная работа Мигель, Спасибо!

2 голосов
/ 20 ноября 2012

Когда вы добавляете кнопку в корневую коллекцию, вы можете установить цвет. Так же, как вы устанавливаете элементы раздела.

Root = new RootElement("First Section") {
    new Section ("Test"){
        new StyledStringElement("Login", delegate { Account(); })
        {
            BackgroundColor = UIColor.Green
        }
    }
}
0 голосов
/ 21 июня 2011

Я не люблю продолжать сутенерство своих проектов, но в этом случае это лучший вариант для вас.

Выезд https://github.com/RobertKozak/MonoMobile.MVVM

Мой проект начался с добавления поддержки привязки данных в MonoTouch.Dialog, но превратился в гораздо большую платформу, которую гораздо проще использовать, чем MonoTouch.Dialog.

Использование MonoMobile.MVVM кода для выполнения того, что вы хотите, выглядит следующим образом:

public class ButtonView : View, INotifyPropertyChanged
{
  private UIColor ButtonColor = UIColor.Red;

   [Button]
   [Bind("ButtonColor", "BackgroundColor")]
   public void Test()
   {
       ButtonColor = UIColor.Green;
       PropertyChanged(this, new PropertyChangedEventArgs("ButtonColor"));
   }

   public event PropertyChangedEventHandler PropertyChanged = (s,e)=>{};
}

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

MonoMobile.MVVM все еще находится в стадии бета-тестирования, но этого достаточно, чтобы вы могли начать работу. Он должен быть полностью готов к выпуску в ближайшие пару недель после того, как я закончу реализацию INotifyCollectionChanged и добавлю еще несколько привязок для различных свойств элемента.

...