Вопрос по user-controls, window, wpf, data-binding, c# – Взаимодействие между UserControl и Windows

1

Мы создали UserControl, который содержит некоторые элементы управления (кнопки и флажки).

После этого я добавил ссылку на этот UserControl в мой WPF Windows.

Я хочу сделать следующее: когда я нажимаю кнопку в UserControl, эта кнопка запускает действие и что-то меняет в Windows (Textbox1.Text = "что-то").

Моя проблема в том, что я могуДоступ к элементам управления в Windows из UserControl.

Любая помощь, пожалуйста?

EDIT : Добавлен пример кода



     
         
     
...

Ваш Ответ

3   ответа
1

UserControl не долженне может изменить связанные с Window вещи, потому что UserControl является независимой сущностью.

Выставьте событие в USerControl и обработайте это событие в Window. В этом случае делай что хочешь со своим окном

0

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

Больше объяснений, пожалуйста! Wassim AZIRAR
Можете ли вы опубликовать код, который создает экземпляр usercontrol? А как называется главное окно? Jan
@HenkHolterman Я добавил немного кода, можете ли вы указать мне, как этого добиться? Wassim AZIRAR
Пользовательский элемент управления никоим образом не должен зависеть от типа его владельца. Henk Holterman
2

коммуникации»... вот только некоторые из способов ... есть еще много:

1) Определите команду ... которую ваша кнопка будет вызывать при нажатии.

Затем в вашем окне вы обработаете эту команду и измените TextBox на некоторую строку.

Вы можете использовать CommandParameter, если вы хотите предоставить некоторые данные / контекст.

2) Определите RoutedEvent (пузырящийся), который пузырится на дереве, и Окно может тогда обработать это. Событие будет вызвано вашей кнопкой в UserControl и будет содержать "текст" Вы хотели быть установлены в Окне.

3) Если вашчто-то" это своего рода "государство" индикатор ... тогда вы могли бы предоставить "государство" свойство в вашем UserControl (или другой вариант имеет ViewModel, который вместо этого содержит данные о состоянии). Тогда ваш TextBox может привязаться к этому свойству в вашем UserControl (или ViewModel), чтобы получить "государство" (либо как значение, которое затем "преобразованный» в отображаемое сообщение с конвертером или в виде прямой строки).

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