Объект приложения Silverlight не существует 'Ошибка

имя «Приложение» не существует в текущем контексте.

Как это возможно? Должен отметить, что мой код инициализации отличается от типа 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"; 

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


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

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

person user1001895    schedule 18.10.2011    source источник


Ответы (1)


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

string value = MainResource.ValueFromHome;

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

person AlignedDev    schedule 18.10.2011
comment
Нет, статические данные не хранятся, мне нужно присвоить значения и получить их позже. Итак, почему я получаю ошибку объекта App(), есть идеи? - person user1001895; 19.10.2011
comment
это ошибка сборки или выполнения? У вас есть app.xaml.cs в вашем проекте? По вашему описанию сложно сказать. Несколько строк кода, вероятно, помогут. - person AlignedDev; 19.10.2011
comment
Ну, цвет строки кода = App.Current.Resources[customColor].ToString(); - person user1001895; 20.10.2011