我正在尝试共享两个窗口的内容,但它似乎没有像我预期的那样工作。
这是一个简单的例子:
class TestClass
{
    [STAThread]
    public static void Main(string[] args)
    {
        Application app = new Application();
        TextBox t = new TextBox();
        t.Text = "test";
        Window w1 = new Window();
        w1.Content = t;
        w1.Show();
        Window w2 = new Window();
        w2.Content = t;
        w2.Show();
        app.Run();
    }
}
如果我在调试模式下单步执行程序,我可以看到它w1有文本框,但是一旦调用w2.Content = t;就会w1丢失文本框......然后它只显示在w2.
我还尝试在 Xmal 中使用绑定,其中两个窗口都指向同一个 ViewModel(具有名为 MySharedContent 的属性)
Content="{Binding Path=MySharedContent}"
但它不起作用。
这可能吗?我在做傻事吗?我在想两个窗口都会有一个指向要渲染的内容的指针……但似乎它们不能共享同一个实例?
编辑:
所以基本答案是 UI 元素(文本框、用户控件等)只能有 1 个父级。因此,我需要有两个单独的 UI 元素共享相同的关联数据。明白了(感谢大家的帮助,为大家投票)