从UserControl中调用父级方法的WPF方法

6
我希望能在WPF的用户控件中调用一个方法。我有一个带列表的窗口,并且我有一个获取此列表的方法。
private ObservableCollection<int> _lst;

public MainWindow()
{
     InitializeComponent();

     getList();
    }

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

在这个页面中,我使用了一个用户控件:

UserControlAAA userControl = new UserControlAAA ();

gridDatos.Children.Add(userControl);

我希望在用户控件内做类似这样的事情:
Window win = Window.GetWindow(this);

win.getList();

但是我无法调用win.getList();

我想从我的用户控件中调用getList方法,但我不知道如何做到这一点。

2个回答

9
您需要将Window对象转换为您使用的特定窗口类型 - 在您的情况下是MainWindow:
MainWindow win = (MainWindow)Window.GetWindow(this);
win.getList();

然而,让用户控件与其所托管的窗口之间存在这样的耦合是不明智的,因为这意味着您只能在MainWindow类型的窗口中使用它。更好的方法是在用户控件中公开一个依赖属性,并将列表绑定到该属性 - 这样用户控件将拥有所需的数据,并且可以在任何类型的窗口中重复使用。


谢谢,非常完美。 - user1253414

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接