我正在尝试共享两个窗口的内容,但它似乎没有像我预期的那样工作。
这是一个简单的例子:
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 元素共享相同的关联数据。明白了(感谢大家的帮助,为大家投票)