Еще одна тема и сложность вместе с ней возникли при игре с WPF, и она заключается в попытке вызвать функцию из динамически добавленного пользовательского элемента управления, передав ей значение.
Для текущего примера у меня есть пользовательский элемент управления, который имеет свойство «Секрет» и кнопку в нем с именем «PublishSecret», конструктор устанавливает значение Секрет случайному числу. В MainWindow у меня есть еще одна кнопка с именем «AddSecretContainer», которая добавляет в окно дополнительный экземпляр этого пользовательского элемента управления, рядом с ним у меня есть текстовое поле с именем «PublishedSecret». Простой метод в MainWindow также был определен, здесь:Вызов функции из динамически добавленного пользовательского элемента управления
public void PublishSecret(int secret)
{
this.PublishedSecret = secret;
}
Теперь без прохождения этой Тайны я мог бы использовать маршрутизируемую команду с их бурлящим эффектом. Но как я могу позвонить PublishSecret, предоставив ему локальное значение Secret из пользовательского элемента управления при нажатии кнопки PublishSecret?
'динамически добавленный пользовательский контроль' - как вы« добавляете »свои пользовательские элементы управления? вы должны «не» манипулировать пользовательским интерфейсом в прозаическом коде в WPF. Для этого и предназначен XAML. Изучите MVVM до того, как вы напишете одну строку кода в WPF. –
@HighCore позволяет сказать, что вы хотите добавить поддержку плагинов к вашему приложению или создать вкладки для вашего приложения браузера, это также динамически добавленные элементы управления, не так ли? и как бы вы справились с этой ситуацией? Остановите мышление внутри своего окна MVVM на секунду и будьте более творческими. Даже VS теперь написан в WPF, по крайней мере, в некоторых его частях, и он поддерживает плагины. – Jyrkka
Попробуйте запустить событие в пользовательском элементе управления и подписаться на MainWindow на это событие и вызвать 'PublishSecret' в обработчике событий – lena