2012-04-28 28 views
0

私は他のビューを追加したいMainWindowを持っています。 ユーザは、MainWindowに対して異なるビューのMutliple数を開くことができます。ベストコントロールWPF MVVMで複数のUserControlを追加するには?

したがって、使用するのに最適なすべてのビュー(UserControls)を追加します。

現在Canvasを使用していますが、MVVMをサポートしていません。

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

これは私が今

enter image description here

注までやっていることです:コントロールは、同じ時間で、複数のユーザーコントロールをホストする必要があり 私はそのコントロールにあちこちワンユーザーコントロールをドラッグすることができるはずですし、その後、 UserControlをクリックするとZIndexを使用してCanvasで行ったFront(Focused)に表示されます。

+0

この 'views'は独占的ですか?つまり、ある視点を見ると他の視点も見ることができますか? – Tigran

+0

ya、そのコントロール内のすべてのビューを表示する必要があります –

+0

キャンバスはうまくいくようです。 MVVMをサポートしていないということはどういう意味ですか? –

答えて

1

適切なMVVMソリューションは、ItemsSourceとしてItemsControlクラスとバインディングコレクションを使用することが多いでしょう。

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

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

画像のようにウィンドウのような動作を実現するには、ドラッグアンドドロップの動作を許可するCanvasをベースにしたカスタムパネルを指定します。

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

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

+0

私はすでにcuaton draggable canvasを使用しています。しかし、私の問題は、私はさまざまなビューモデルからの子を追加することができません。 –

関連する問題