我有一个MainWindow,我想在其中添加我的其他视图。 用户可以向MainWindow打开Mutliple数量的不同视图。
所以添加所有那些视图(UserControls),这是最好的控件。
目前我正在使用Canvas,但它不支持MVVM。
那么如何添加多个控件呢。
这是我到目前为止所做的事情
注意: 控件应该同时托管多个UserControl,我应该能够在该控件中拖动One UserControl,然后单击UserControl,将其带到Front(Focused),我在Canvas中使用ZIndex进行。
答案 0 :(得分: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>
我想你已经在使用画布解决方案了。