Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF call method parent from usercontrol

I want to call a method from user control in WPF

I´ve a Window with a list and I have a method that get this list.

private ObservableCollection<int> _lst;

public MainWindow()
{
     InitializeComponent();

     getList();
    }

public void getList()
{
    _lst = List<int>(); 
}

In this page I use a usercontrol:

UserControlAAA userControl = new UserControlAAA ();

gridDatos.Children.Add(userControl);

I want to do something like this inside of usercontrol:

Window win = Window.GetWindow(this);

win.getList();

but I can´t call win.getList();

I want to call the method getList from my usercontrol, but I don´t know how to do it.

like image 393
user1253414 Avatar asked Feb 23 '14 22:02

user1253414


1 Answers

You'll need to cast the Window object to the specific window type you're using - which in your case is MainWindow:

MainWindow win = (MainWindow)Window.GetWindow(this);
win.getList();

However, it's not wise to have such coupling between the user control and the window it's hosted in, since that means you will only be able to use it in a window of type MainWindow. It would be better to expose a dependency property in the user control and bind the list to that property - this way the user control will have the data it requires and it will also be reusable in any type of window.

like image 177
Adi Lester Avatar answered Oct 17 '22 22:10

Adi Lester