我为帖子的冗长标题道歉。我的目标是创建一组可重用的 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 的连接。”
感谢您在这件事上的任何帮助。