Xamarin привязка данных в текущих свойствах - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь получить некоторые строки в current.properties, но не уверен, как это сделать правильно.

Сейчас я создаю Label с привязкой, а затем получаю label.textв собственность, но это кажется немного глупым:

var userLabel = new Label {};
userLabel.SetBinding(Label.TextProperty, "name");

Application.Current.Properties["studentName"] = userLabel.Text; 

С нетерпением жду более легкого пути; -)

1 Ответ

0 голосов
/ 20 сентября 2018

Вот обходной путь:

class MyViewModel : INotifyPropertyChanged
{
    string text;

    public event PropertyChangedEventHandler PropertyChanged;

    public MyViewModel()
    {
        Text = "York";
    }

    public string Text
    {
        set
        {
            if (text != value)
            {
                text = value;
                OnPropertyChanged("Text");
                Application.Current.Properties["Text"] = text;
            }
        }
        get
        {
            return text;
        }
    }

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

Набор BindingContext:

protected override void OnAppearing()
{
    base.OnAppearing();
    MyViewModel mainPageViewModel = new MyViewModel();
    BindingContext = mainPageViewModel;
}

Используйте его в своем label:

<Label Text="{Binding Text}">

Для болееподробную информацию можно найти по адресу: Основы привязки данных форм Xamarin .

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