从另一个UserControl在主窗口中添加UserControl

本文关键字:UserControl 添加 窗口 另一个 | 更新日期: 2023-09-27 18:24:01

我在UserControl_1中有两个UserControl_1,有一个按钮可以在MainWindow.axml中的StackPanel中添加UserControl_2

private void Button_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    UserControl_2 uc = new UserControl_2();
    ((MainWindow)Application.Current.MainWindow).stackpanel_2.Children.Add(uc);
}

如何在MVVM模式中做到这一点?

从另一个UserControl在主窗口中添加UserControl

简单的答案是,您不能使用MVVM执行此操作。

在MVVM中,视图是视图模型中包含的数据的可视化表示。您永远不会直接添加控件,因为它不会代表任何数据!

如果视图上有一个绑定到视图模型中某个集合的ItemsControl,则向该集合添加项将添加适当的控件。这就是您将如何实现MVVM中现有代码的精神。