Я новичок в программировании и хочу научиться программировать на C#. Я шел довольно гладко и учился на сайтах в Интернете, но прямо сейчас я столкнулся с небольшой проблемой, для которой я не могу найти решение.
Я делаю простую утилиту, используя Visual Studio и Blend, и она состоит из некоторых пользовательских элементов управления, созданных с помощью Blend.
Одним из таких пользовательских элементов управления является тумблер, и чтобы определить, включен он или выключен, я создал логическую переменную.
private bool switchOn = false;
По сути, моя цель — обновить некоторый текст на экране в зависимости от значения этого логического значения.
Переменная для переключателя хранится в файле с именем «ToggleSwitch.xaml.cs» [ФОРМА A], а текст, который я хочу обновить, хранится в файле с именем «MainWindow.xaml.cs» [ФОРМА B].
Как мне использовать логическую переменную из [ФОРМЫ A] и реализовать ее в коде, используемом в [ФОРМЕ B].
Надеюсь, я ясно объяснил, что я хочу сделать, и был бы очень признателен, если бы кто-нибудь мог мне в этом помочь.
Возможно, вам нужно использовать сеанс для хранения пользовательских настроек и чтения их на разных страницах. Сессия может быть не идеальной для крупномасштабного приложения, поэтому вам нужно быть более точным в отношении архитектуры и типа вашего проекта. Или же, если есть база данных, сохраните это значение в базе данных и получите доступ туда, где вам нужно.
Хорошая работа, чтобы пытаться учиться, и хорошая работа, чтобы задавать вопросы! Если переключатель находится на той же странице, что и текст, который вы хотите напечатать, вы, вероятно, можете получить к нему доступ, выполнив что-то вроде if (mySwitch.switchOn) { // print }
. Здесь я предполагаю, что у вас есть переменная с именем mySwitch
, которая представляет ваш переключатель. Также вам нужно изменить метод доступа вашей переменной (private
) на public
.
@mjwills Сделает ли это это доступной из других файлов в проекте, или мне также нужно как-то связать файлы?
Если он находится в Bob.xaml.cs
, я подозреваю, что вы сможете получить к нему доступ, например, с помощью Bob.switchOn
.
@Glubus wdym «на той же странице». Код для переключателя и код для текста находятся в двух отдельных файлах. Я ищу способ реализовать переменные, созданные в форме 1, в форме 2. Например. если переключатель выключается и switchOn
обновляется до false
в форме 1, как мне получить значение этой переменной и реализовать его в форме 2 Еще раз спасибо за вашу поддержку!
@IsuruA Когда я говорю «на той же странице», я имею в виду, что нахожусь там, предполагая, что переключатель находится на экране, который также содержит текст, который вы хотите вывести. Если это так, то и переменная-переключатель, и текстовая переменная должны быть доступны одновременно где-то в вашем коде. Это означает, что вам нужно найти эту точку в коде и использовать такие стратегии, как события, для объединения двух переменных. Если нет доступа к переменным, потому что они не отображаются одновременно, это означает, что вам придется общаться через прокси, например, через базу данных.
Два подхода:
Обратите внимание, как правило, (1) - плохая идея при переходе к производству. Избегайте общего состояния.
Краткий ответ, вероятно, изменится
private bool switchOn = false;
наpublic static bool switchOn = false;