Объект приложения Silverlight не существует 'Ошибка - PullRequest
0 голосов
/ 19 октября 2011

name 'App' не существует в текущем контексте.

Как это возможно? Следует отметить, что мой код инициализации отличается от типа MainPage (), поскольку я преобразовал приложение SketchFlow в рабочий Silverlight. Они инструктируют вас сделать код инициализации через System.Windows.Controls.Frame ():

private void Application_Startup(object sender, StartupEventArgs e)
{
    this.RootVisual = new System.Windows.Controls.Frame() { Source = new Uri("/MyAppScreen.xaml", UriKind.Relative) };

}
public static string ValueFromHome =
"A Value on Home page"; 

цель состояла в том, чтобы настроить общедоступную переменную внутри объекта App, чтобы в будущем я мог получить к ней доступ с различных экранов


Для доступа к данным ресурса требуется вызов объекта App, как я полагаю ниже, это правильно? так что это не поможет мне

string color = App.Current.Resources["customColor"].ToString(); 

1 Ответ

0 голосов
/ 19 октября 2011

Если вы просто храните строки, изучите использование файлов ресурсов. Тогда они могут быть переведены, если это когда-либо станет необходимым. РЕДАКТИРОВАТЬ (для объяснения использования файла ресурса): чтобы получить доступ к ресурсу, сначала создайте файл .resx в своем проекте (скажем, назовите его MainResource.resx), измените раскрывающийся список модификатора доступа на public, добавьте строку с именем: ValueFromHome и Value: «Значение на домашней странице». Затем вы можете получить значение, добавив использование к пространству имен ресурса, если необходимо, и вызвав его напрямую следующим образом:

string value = MainResource.ValueFromHome;

Я бы с осторожностью относился к статическим переменным. Возможно, вы могли бы использовать MainViewModel для хранения этого значения. Если вам действительно нужна статическая переменная, создайте новый статический класс в своем проекте и поместите свойство ValueFromHome в этот класс. Приложение, вероятно, недоступно, так как оно представляет собой конструкцию Silverlight и не доступно для всех областей.

...