2つのウィンドウのコンテンツを共有しようとしていますが、期待どおりに機能していないようです。
これを示す簡単な例を次に示します。
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つの親しか持てないということです。したがって、同じ関連データを共有する2つの別個のUI要素が必要です。了解しました(すべての人の助けに感謝し、すべての人に賛成票を投じます)