使用“new”在 WPF C# 中创建一个重复的无模式窗口,该窗口使用 UserControl 镜像输入和显示原始内容

问题描述 投票:0回答:0

我为帖子的冗长标题道歉。我的目标是创建一组可重用的 XAML 元素(通过创建 UserControl),以便显示通过文本框手动输入或在 CS 文件中的其他地方自动输入的信息。然后我想“复制并分离这个控件”到一个新窗口中,除了我不想通过分配它(new Window.Content = newControl)来使用控件的新实例(UserControl newControl = new UserControl())。我想引用已经存在于我的 MainWindow 的 UserControl 中的元素属性。

所以第 1 步:创建一个 UserControl 并编写允许通过元素属性名称编辑和显示所需信息的 XAML。 (简单)

第 2 步:在我的应用程序的 MainWindow XAML 中使用此 UserControl 以及与此控件分开的其他信息组。 (简单)

第 3 步:允许用户在新的无模式窗口中创建此 UserControl 的副本,其中唯一显示的是此 UserControl。 (这是问题开始的地方)

第 4 步:在主窗口或无模式窗口(均具有相同的引用用户控件)中更改此 UserControl 元素属性将更新和刷新两个窗口中的元素属性。

我是 WPF 和 XAML 初学者,不确定如何实现此行为。

这就是我目前所拥有的,但这会创建一个新的 xaml 实例,并且不会反映在 MainWindow 中所做的更改。

private void Button_Click(object sender, RoutedEventArgs e)
        {
            //Creates an instance
            UserControl1 uc1 = new UserControl1();

            Window newWin = new Window();
            newWin.Content = uc1;
            
            newWin.Show();
        }

当我这样做的时候

private void Button_Click(object sender, RoutedEventArgs e)
        {
            //attempt to reference the element by x:name
            Window newWin = new Window();
            newWin.Content = myUserControl;
            
            newWin.Show();
        }

我得到一个运行时错误:

System.ArgumentException:“在附加到新的父 Visual 之前,必须断开指定子项与当前父 Visual 的连接。”

感谢您在这件事上的任何帮助。

c# wpf xaml user-controls
© www.soinside.com 2019 - 2024. All rights reserved.