Решено | Как связать TextBox и Label в двух окнах форм WPF?

Всем привет. Бывает для не которых задач необходимо передавать данные из одной формы в другую. Способов решения такой задачи достаточно много. Но я хотел именно показать как можно сделать практически всю логику вынеся в XAML разметку и как можно меньше использовать C#. И так я в своем примере покажу как можно из одной формы окна TextBox привязать к Lable в другом окне формы.

App.xaml

Для этого в XAML разметке файла App.xaml впишем следующий код.

И так мы тут подключили пространство имен mscorlib и создали объект класса String это будет наша глобальная переменная благодаря которой мы сможем обмениваться текстом между двух форм.

MainWindows.xaml

Далее в Xaml разметке MainWindows впишем следующий код.

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

MainWindows.cs

А вот что мы вписываем в обработчике на события, и конструкторе класса MainForm 

В конструкторе мы создаем еще одну форму и отображаем ее. Так же в обработчике события нажатия клавиш, реализовано сохранение текста, в нашу глобальную переменную, находящуюся в ресурсах файла App.xaml. 

Windows2.xaml

Теперь посмотрим xaml разметку нашей второй формы.

 

Как мы видим в разметке мы привязали Label к нашей глобальной переменной. И теперь когда мы будем писать в главной форме окна в textBox вся информация будет видна в Label в дочерней форме.

Если захотеть можно не много изменив код, вместо Label вставить TextBox так же создать обработчик события во второй форме на нажатие клавиш, и сделать привязку на глобальную переменную в первой форме, то в итоге мы получим два окна в котором мы можем видеть напечатанный текст сразу в двух окнах, при чем не имеет значения в каком окне мы будем печатать.

Обновлено: 03.03.2021 — 21:46

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.