私はいくつかのユーザーコントロールがあるシナリオを持っています。
- CreateStudents
- 教師の作成
各ユーザー コントロールには、独自のビュー モデルがあります。データコンテキストは初期化で設定されます。
上記のユーザー コントロールをロードできるメイン UI があります。したがって、データコンテキストの設定は正常に機能します。
問題文 タブのコレクションである別のユーザー コントロール "CreateClass" があります。ここから、上記の 2 つのユーザー コントロール (非表示のタブ) に移動できます。
データコンテキストは、CreateClassViewModel の「CreateStudentManager」と「CreateTeacherManager」の 2 つのプロパティによって設定されます。
これは正常に動作しますが、問題は、デフォルトで CreateClass UI を開くと、他のユーザー コントロールも読み込まれることです (デフォルトのコンストラクターがあるためだと思います)。
CreateClass を開いたときに、他のコントロールをロードしたくないからです。これらは、Create Class UI から明示的に呼び出された場合にのみロードする必要があります。
これを達成する方法は?
以下は、1 つの「CreateStudent」のサンプルです。
<TabItem Header="Students" Visibility="{Binding IsStudentVisible, Converter={StaticResource BooleanToVisibilityConverter}}" >
<Grid>
<local:UCCreateStudent DataContext="{Binding CreateStudentManager}"/>
</Grid>
</TabItem>
- ギリヤ