0

UserControl をシングルトンにする方法はありますか?

例:
MainWindow と 2 つの UserControl があります {UserControl 'A' と UserControl 'B'}
MainWindow には 2 つのボタン {Button 'UCA' と Button 'UCB'}
があります UserControl 'A' には TextBox があります。
起動時に、UserControl 'A' が MainWindow にロードされます。
ボタン 'UCB' をクリックすると、UserControl 'B' が UserControl 'A' を置き換え、Button 'UCA' をクリックすると、UserControl 'A' が UserControl 'B' を置き換えます。

私の質問は:
UserControl 'A' がアクティブになっているときに、TextBox に「Test」と入力してから、UserControl 'B' に切り替えました。UserControl 'A' に切り替えたときに、TextBox のテキストがまだそこにあることを望みます。私の解決策は、シングルトン UserControl を作成することですが、その方法がわかりません。

NB: 上記は単純な例です。達成したいことは、UserControl を切り替えたときに TextBox にテキストを保持するよりも複雑です。ただし、ポイントは、新しいインスタンスを作成せずに UserControl の同じインスタンスを呼び出す方法です。

4

1 に答える 1

0

代わりに、両方のユーザー コントロールを MainWindow にロードし、ボタンが押されたときにそれらの表示を切り替える必要があります。たとえば、UserControls が名前付きABXaml の場合、UCB.Clickハンドラーのコード ビハインドで次のようにします。

B.Visibility = Visibility.Visible;
A.Visibility = Visibility.Collapsed;

UCA.Clickハンドラーの場合はその逆です。

于 2012-11-28T04:46:19.023 に答える