Вопрос

Давайте предположим, что в App.cs - я бы добавил поле в класс, представляющий приложение. Могу ли я получить доступ к этому полю со страниц приложения? Если так, как я могу это сделать? Правильно ли я предположить, что после инициализации это поле участника будет «живым»? на время выполнения приложения?

Это было полезно?

Решение

Вы можете. в основном вы просто получаете текущее приложение и приводите его к приложению (или какому-либо имени класса в вашем App.Xaml). Вот фрагмент, демонстрирующий это.

var myApp = Application.Current as App;
var n = myApp.NameOfPropertyAdded;

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

Подход к добавлению свойств в файл App.xaml.cs пахнет немного странно. Я думаю, что рекомендуемый подход заключается в добавлении чего-либо к приложению в качестве ресурса уровня приложения, чтобы вы могли легко ссылаться на них в XAML.

Другие советы

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

public Application CurrentApp
{
    get
    {
        return Application.Current as App;
    }
}

Затем на своей странице вы можете просто указать свою собственность

CurrentApp.MyField;

И да, поле или свойство в вашем App.xamls.cs будут присутствовать в течение всего срока службы приложения.

Если вы сделаете поле, свойство, метод статическим, вы сможете получить к нему доступ, используя

App.myField;
App.MyProperty;
App.MyMethod();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top