Есть ли что-то похожее на Unity void Update () в формах xamarin? - PullRequest
1 голос
/ 05 мая 2020

Я только начал изучать Xamarin формы и хотел знать, есть ли такой метод, как void Update() Unity. Это значит, что я могу обновлять элементы пользовательского интерфейса, а не только в случае нажатия кнопки. Также я хотел бы изменить значение переменной после указанного c времени, и в настоящее время, насколько мне известно, мне придется нажать кнопку, чтобы изменить значение переменных (например, для запуска оператора if, который изменяет переменную, я бы нужно нажать кнопку).

Кроме того, у вас есть список тем, которые я должен знать как новичок Xamarin Разработчик форм.

Ответы [ 2 ]

1 голос
/ 05 мая 2020

хотел знать, есть ли такой метод, как void Update () в Unity. Так я могу обновлять элементы пользовательского интерфейса, а не только при таком событии, как нажатие кнопки.

Есть много способов обновить пользовательский интерфейс. Вы можете обновить пользовательский интерфейс с помощью методов жизненного цикла Page, таких как page.onappearing и page.ondisappearing , или с помощью методов жизненного цикла приложения и et c. Сообщите нам свое требование, и мы предоставим вам более подробную c информацию.

Также я хотел бы изменить значение переменной через определенное время

Вы можно использовать Timer в Xamarin.forms:

Device.StartTimer (new TimeSpan (0, 0, 60), () =>
{
    // do something every 60 seconds
    Device.BeginInvokeOnMainThread (() => 
    {
      // interact with UI elements
    });
    return true; // runs again, or false to stop
});

у вас есть список тем, которые я должен знать как начинающий разработчик Xamarin Forms. у вас, ребята, есть список тем, которые я должен знать как начинающий разработчик Xamarin Forms.

Здесь - это документ о Xamarin.forms, и вы можете прочитать раздел за разделом, чтобы узнать Xamarin.

Обновление , ответ на это видео :

    public MainPage()
    {
        InitializeComponent();

        //If you don't want to trigger the event by click button, you can call the method here
        //the method will be called after the page's initialization

        TimerButton_Clicked(this,new EventArgs());
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();

        //also you can call it here
        //the method will be called after the page appeared

        //TimerButton_Clicked(this, new EventArgs());
    }

    private void TimerButton_Clicked(object sender, EventArgs e)
    {
        //use this variable to count the second
        int time = 0;

        Device.StartTimer(new TimeSpan(0, 0, 0,0,200), () =>
        {
            time += 200;

            // do something every 200 milliseconds
            Device.BeginInvokeOnMainThread(() =>
            {
                // interact with UI elements
                TimerLabel.Text = time.ToString() + "milliseconds";

            });

            if (time >= 3000)
            {
                return false;
            }

            return true; // runs again, or false to stop
        });
    }
 }

Лучший способ выполнить ваше требование - использовать таймер, я написал образец проекта для вас и вы можете проверить это здесь .

0 голосов
/ 05 мая 2020

Проекты Xamarin.Forms обычно структурируются с использованием MVVM, при этом привязка данных выполняется между элементами управления представлениями (то, что пользователь смотрит) и свойствами ViewModel.

ViewModels затем реализуют интерфейс INotifyPropertyChanged и, как таковой, могут автоматически сигнализировать об обновлении View при изменении значений их свойств. Код фреймворка для представления затем автоматически обрабатывает синхронизацию потоков для обновления пользовательского интерфейса.

Используя структуру MVVM, вы можете запускать все «бизнес-логики» вашей программы. интерфейс к this, позволяя взаимодействовать с командами (предпринятые действия) и преобразовывать параметры.

View использует ViewModel в качестве своего DataContext, а ViewModel может даже содержать другие ViewModel, если требуется. Это слишком большой topi c, чтобы обрабатывать его здесь, но я бы посоветовал вам взглянуть на некоторые из примеров проектов Xamarin.

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