0

他のビューを追加したい MainWindow があります。ユーザーは、MainWindow に対して複数の異なるビューを開くことができます。

したがって、これらすべてのビュー (UserControls) を追加するには、これが最適なコントロールです。

現在キャンバスを使用していますが、MVVM をサポートしていません。

では、どうすれば複数のコントロールを追加できますか。

これは私が今までやってきたことです

ここに画像の説明を入力

注: コントロールは複数の UserControl をホストすると同時に、1 つの UserControl をそのコントロールのあちこちにドラッグできるようにし、UserControl をクリックすると、ZIndex を使用して Canvas で行った Front(Focused) に移動する必要があります。

4

1 に答える 1

1

適切な MVVM ソリューションは、ItemsControl クラスを使用し、ビューモデルのコレクションを ItemsSource としてバインドすることです。

そのItemsControlのDataTemplateで、子ビューモデル(あなたの場合はツールウィンドウのようなもの)に適切なビューを指定します。

<ItemsControl.ItemTemplate>
    <DataTemplate>
        <views:ToolWindow DataContext={Binding} />
    </DataTemplate>
</ItemsControl.ItemTemplate>

あなたの写真のようにウィンドウのような動作を実現するには、キャンバスに基づいてカスタムパネルを指定し、ドラッグアンドドロップ動作を可能にします。

<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <panels:MyCustomMdiPanel />
    </ItemsPanelTemplate>
<ItemsControl.ItemsPanel>

すでにキャンバス ソリューションを使用していると思います。

于 2012-04-30T13:19:35.430 に答える