У меня есть окно и оно содержит элемент управления вкладкой. Каждый элемент управления вкладкой содержит отображение UserControl.Получить содержимое выбранной вкладки
Как получить объект содержимого активной вкладки и вызвать метод этого объекта?
У меня есть окно и оно содержит элемент управления вкладкой. Каждый элемент управления вкладкой содержит отображение UserControl.Получить содержимое выбранной вкладки
Как получить объект содержимого активной вкладки и вызвать метод этого объекта?
Вы можете получить содержимое выбранного элемента вкладки с TabControl.SelectedContent
:
Получает содержимое выбранного TabItem.
Это вернет все, что вы разместили в элементе табуляции. Вы можете получить это безопасно, как UserControl, если вы разместите свои собственные элементы управления в элементах табуляции.
var ctrl = tabCtrl.SelectedContent as UserControl;
Конечно, вместо UserControl
вы можете использовать любой общий базовый класс фактического контроля, который вы используете.
EDIT: Чтобы вызвать метод определенного контроля, вы можете привести к фактическому типу:
if(ctrl is MySpecificControl1)
{
var myCtrl1 = (MySpecificControl1)ctrl;
myCtrl1.MySpecificMethod();
}
@TalhaIrfan Что значит? Вы получаете исключение? Пожалуйста, будьте более конкретными. – helb
Когда я пишу: TabItem ctrl = mainTab.SelectedContent как WorkSpaceViewControl; Это дает мне ошибку, что я не могу неявно преобразовать TabItem в WorkSpaceView Control. Требуется явное преобразование? –
это потому, что вы пытаетесь неявно скрывать результат до 'TabItem'. Попробуйте с помощью 'var ctrl = ...' вместо 'TabItem ctrl = ...' – helb
Если контрольная вкладка в МОФ, чем вы можете использовать TabControl.SelectedItem – yash
Попробуйте что-то вроде 'var ctrl = tabCtrl.SelectedContent как UserControl;' – helb
Но каждая вкладка имеет различный контроль. Как я могу получить его полиморфно? –