Задать вопрос
@postya

Как сделать binding текста из textbox в label?

Имеется главное окно, в котором находится лейбл с текстом. При клике на кнопку открывается окно с textbox
Как сделать, чтобы текст из второго окна при наборе текста сразу же отображался в лейбле главного окна?

TextBox второго окна:
<TextBox x:Name="CategoryText"
                     Style="{StaticResource CategoryTextBox}" />


Лейбл главного окна:
<Label x:Name="CategoryLabel1"
   Grid.Row="1"
   Style="{StaticResource CategoryLabel}">
  • Вопрос задан
  • 764 просмотра
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
@postya Автор вопроса
Всё оказалось значительно проще)

в xaml второго окна есть специальный метод при изменении текста:
<TextBox x:Name="CategoryText"    
 TextChanged="ChangeText"
 Style="{StaticResource CategoryTextBox}" />


в коде этого второго окна прописал этот метод:

public partial class FontWindow : Window
    {
         private MainWindow window;

        public FontWindow(MainWindow mainWindow)
        {
            InitializeComponent();
            window = mainWindow;
            
        }

       private void ChangeText(object sender, TextChangedEventArgs e)
        {
            TextBox tb = sender as TextBox;
                window.CategoryLabel1.Content = tb.Text;
        }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@valerahex
При открытии второго окна, присвой DataContext`у объект из главного окна, и в главном при изменении значения вызывай событие INotifyPropertyChanged, для обновления визуального представления.
Ответ написан
SpacePurr
@SpacePurr
c#, wpf
В конструктор второго окна передавайте Text из основного окна и присваивайте нужному Label.
Например так:
public partial class SecondWindow: Window
{
    public SecondWindow(string text)
    {
        InitializeComponent();
        CategoryText.Text = text;
    }
}


SecondWindow window = new SecondWindow(CategoryLabel1.Text);


Если используете MVVM, то передавайте свойство в ViewModel второго окна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы