Как мы можем назначить Application.Current BindingContext - PullRequest
0 голосов
/ 27 февраля 2020

Я очень новичок в xamarin и задаюсь вопросом о том, как используется BindingContext.

Я просматривал учебник, в котором они использовали BindingContext = Application.Current

в соответствии с приложением docs. Ток должен вернуть приложение. так как может работать это утверждение выше?

1 Ответ

0 голосов
/ 06 марта 2020

Во-первых, создайте одно свойство в APp.cs, реализуйте интерфейс INotifyPropertyChanged.

 public partial class App : Application, INotifyPropertyChanged
{
    private string _str;
    public string str
    {
        get { return _str; }
        set
        {
            _str = value;
            RaisePropertyChanged("str");
        }
    }
    public App()
    {
        InitializeComponent();
        str = "this is test";
        MainPage = new NavigationPage(new simplecontrol.Page26());         
    }


    public event PropertyChangedEventHandler PropertyChanged;      
    public void RaisePropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    protected override void OnStart()
    {
        // Handle when your app starts
    }

    protected override void OnSleep()
    {
        // Handle when your app sleeps
    }

    protected override void OnResume()
    {
        // Handle when your app resumes
    }
}

Затем выполните привязку Application.Current для ContentPage BindingContext.

<ContentPage.Content>
    <StackLayout>
        <!--<local:View2 Items="{Binding modelas}" />-->
        <Label
            HorizontalOptions="CenterAndExpand"
            Text="{Binding str}"
            VerticalOptions="CenterAndExpand" />
    </StackLayout>
</ContentPage.Content>

 this.BindingContext = Application.Current;
...