WPF usercontrol Winforms interop - обработка событий WPF в Winforms
Требование: пользовательский контроль WPF (UserControl1) содержит Expander (экспандер1), а экспандер содержит 3 переключателя
и WPF usercontrl, размещенный в winform (Form1)
когда радиокнопка изменена в главной форме usercontrol, она должна быть уведомлена и на основе выбора должна появиться некоторые элементы управления в mainform
Код: в usercontrol1.xaml.cs
public delegate void ucRadioButtonHandler(object sender, **ucButtonEventArgs** e);
public event ucRadioButtonHandler onRadioButtonClick;
private void radioButton1_Checked(object sender, RoutedEventArgs e)
{
if (onRadioButtonClick != null)
{
onRadioButtonClick(sender, new ucButtonEventArgs());
}
}
ucButtonEventArgs - это класс, определенный в том же usercontrol.xaml.cs
public partial class ucButtonEventArgs : EventArgs
{
public ucButtonEventArgs()
{
}
}
Теперь в форме MainForm1
public Form1()
{
InitializeComponent();
userControl11.onRadioButtonClick += new WpfControlLibrary1.UserControl1.ucRadioButtonHandler(userControl11_onRadioButtonClick);
}
void userControl11_onRadioButtonClick(object sender, WpfControlLibrary1.ucButtonEventArgs e)
{
System.Windows.Controls.RadioButton rb = (System.Windows.Controls.RadioButton)sender;
MessageBox.Show(rb.Content + " Selected!!!!!!!!");
}