Подтвердить что ты не робот

Приложение WPF с использованием глобальной переменной

Я создал приложение WPF в С# с тремя разными окнами, Home.xaml, Name.xaml, Config.xam l. Я хочу объявить переменную в Home.xaml.cs, которую я могу использовать в обеих других формах. Я пробовал делать public string wt = "";, но это не сработало.

Как я могу использовать его для всех трех форм?

4b9b3361

Ответ 1

Правильный способ, особенно если вы когда-либо хотите перейти на XBAPP, заключается в его сохранении в

Application.Current.Properties

который является объектом словаря.

Ответ 2

Вы можете использовать статическое свойство:

public static class ConfigClass()
{
    public static int MyProperty { get; set; }
}

Edit:

Идея здесь заключается в создании класса, в котором содержатся все "общие данные", как правило, конфигурации. Конечно, вы можете использовать любой класс, но предлагаете использовать статический класс. Вы можете получить доступ к этому свойству следующим образом:

Console.Write(ConfigClass.MyProperty)

Ответ 3

Чтобы избежать необходимости передавать значения между окнами и пользовательскими элементами управления или создавать статический класс для дублирования существующих функций в WPF, вы можете использовать:

  • : App.Current.Properties["NameOfProperty"] = 5;
  • получение: string myProperty = App.Current.Properties["NameOfProperty"];

Это было упомянуто выше, но синтаксис был немного выключен.

Это обеспечивает глобальные переменные в вашем приложении, доступные из любого кода, запущенного внутри него.

Ответ 4

Здесь вы можете сделать две разные вещи (среди прочего, это только те, которые сначала приходят на ум).

  • Вы можете сделать переменную static на Home.xaml.cs

    общедоступная статическая строка Foo = "";

  • Вы можете просто передать переменную во все три формы.

Я бы пошел С# 2, сам, и при необходимости создаю отдельный класс, который содержит нужные мне данные. Тогда каждый класс будет иметь доступ к данным.

Ответ 5

App.xaml:

<Application x:Class="WpfTutorialSamples.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:sys="clr-namespace:System;assembly=mscorlib"
         StartupUri="WPF application/ResourcesFromCodeBehindSample.xaml">
<Application.Resources>
    <sys:String x:Key="strApp">Hello, Application world!</sys:String>
</Application.Resources>

код

Application.Current.FindResource("strApp").ToString()