0

我有一个 MainWindow,我想在其中添加我的其他视图。用户可以在主窗口中打开多个不同的视图。

因此,对于添加所有这些 Views(UserControls),这是最好的控件。

目前我正在使用 Canvas,但它不支持 MVVM。

那么如何添加多个控件。

这是我到目前为止所做的

在此处输入图像描述

注意:控件应该同时托管多个 UserControl 我应该能够在该控件中在这里和那里拖动一个 UserControl,然后单击 UserControl 应该将它带到 Front(Focused),这是我在 Canvas 中使用 ZIndex 所做的。

4

1 回答 1

1

正确的 MVVM 解决方案可能是使用 ItemsControl 类并将视图模型的集合绑定为 ItemsSource。

在该 ItemsControl 的 DataTemplate 中,我将为子视图模型指定正确的视图(在您的情况下是某种工具窗口)。

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

为了在您的图片上实现类似窗口的行为,我将指定基于 Canvas 的自定义面板,该面板将允许拖放行为。

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

我想你已经有了画布解决方案。

于 2012-04-30T13:19:35.430 回答