にユーザーコントロールがありWPF
ます。これは、複数のWindowsで使用されることになっています。実行時に現在の親ウィンドウを取得したい。
ユーザー制御コードビハインドファイルでは、次の行が使用されています。
MyWindow1 parentWindow = (MyWindow1)Window.GetWindow(this);
同じUserControl
wudがで使用されている場合はどうなりMyWindow2
ますか?この場合、上記の行は正しくありません。何か提案はありますか?
にユーザーコントロールがありWPF
ます。これは、複数のWindowsで使用されることになっています。実行時に現在の親ウィンドウを取得したい。
ユーザー制御コードビハインドファイルでは、次の行が使用されています。
MyWindow1 parentWindow = (MyWindow1)Window.GetWindow(this);
同じUserControl
wudがで使用されている場合はどうなりMyWindow2
ますか?この場合、上記の行は正しくありません。何か提案はありますか?
これを行うことはできますが、子コントロールにそのような方法で親を参照させることは、非常に優れたコード設計ではないと思います。
そのような要件の正当性がある場合は、sayUserControl
のコンストラクターでこのようなことを行うことができます
Loaded += (sender, args) => {
Window win = Window.GetWindow(this);
if (win == null)
return;
if (win is MyWindow1) {
MessageBox.Show("Window 1");
} else if (win is MyWindow2) {
MessageBox.Show("Window 2");
}
};
基本的にis
演算子を使用してタイプを確認し、アクションを実行します。非常に説得力のある理由がない限り、このルートをたどらないことをお勧めします。