WPF. Как я могу получить доступ к элементам на разных вкладках, которые определены в отдельных XAML?

Ну, ситуация такова: у меня есть проект WPF, который содержит TabControl с двумя TabItems. Одна вкладка содержит только TextBlock, а другая имеет TextBox и кнопку. То, что я хочу достичь, заключается в том, что при нажатии кнопки текст внутри TextBox второй вкладки появляется в TextBlock первой вкладки.

Это должно быть непростой задачей, но я застрял, потому что у меня есть каждая вкладка, разработанная в отдельном XAML (и мне нужно сохранить ее таким образом), и у меня есть этот MainWindow.xaml:



    
        
        
    


Все элементы имеют назначенное имя, поэтому как я могу получить к ним доступ для записи методов в .cs-файле XAML для второй вкладки?

Заранее спасибо!

0
nl ja de

2 ответы

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

Свойства выглядят так:

private string text1;
public string Text1
{
get{return this.text1;}
set{
this.text1 = value;
OnPropertyChanged("Text1");}
}

private string text2;
public string Text2
{
get{return this.text2;}
set{
this.text2 = value;
OnPropertyChanged("Text2");}
}

В Click-Event (или ExecuteCommand) вашей кнопки вам просто нужно сделать:

Text1 = Text2;

это оно

0
добавлено
Спасибо, это сработало.
добавлено автор DrGrijando, источник

Поскольку вы определенно хотите, чтобы эти пользовательские элементы управления были отделены друг от друга, я бы использовал отдельный класс сообщений для DataExchange. Такой класс уже доступен в MVVM Light Toolkit. Один UC может публиковать информацию, которую может получить другая.

В противном случае можно позволить вашему окну выполнить синхронизацию посредством привязки, если пользовательский элемент управления с текстовым полем предоставляет текст как свойство зависимости.

0
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot