WPF call method parent from usercontrol

10,042

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.

Share:
10,042
user1253414
Author by

user1253414

Updated on June 14, 2022

Comments

  • user1253414
    user1253414 almost 2 years

    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.

  • user1253414
    user1253414 about 10 years
    Thank You, It´s perfect.