0

我有一个使用 MVVM 构建的 WPF 桌面应用程序,并且在 MainWindow.xaml 中提供了所有视图。问题是视图是按照它们在 Window.Resources 中出现的顺序列出的,每个视图都在屏幕上伸展。我希望 2 个视图并排显示在主窗口中。

澄清一下,有一个包含树形可视化的 tabcontrol 视图,旁边是 2 个扩展器,用于从选项卡内部打开和显示信息。因为应用程序列出了视图,所以扩展器位于选项卡区域下方。我希望他们躺在旁边并弹出(部分遮挡)标签。

这将获得 observableCollection ViewModels (MainWindow.xaml):

<ItemsControl Grid.IsSharedSizeScope="True" ItemsSource="{Binding ViewModels}" 

并因此将它们添加到 MainWindow ViewModel 类中:

SearchExpanderViewModel viewModel6 = new SearchExpanderViewModel(decisiontreeRepository);
    this.ViewModels.Add(viewModel6);

当我无法将它们放在网格中时,如何在 MainWindow 视图中并排放置 2 个视图?

提前致谢!

编辑:截图我不能添加图像或任何东西,因为声誉,链接在这里:http: //imgur.com/7y1yj

4

1 回答 1

0

这是在 mainWindowViewModel 中将“坐标”添加到这些行:

ExpandersViewModel expanderStackpanelViewModel = new ExpandersViewModel(2,1,1,1,
decisiontreeRepository);
this.ViewModels.Add(expanderStackpanelViewModel);

并在 xaml 文件中使用网格,并将行和列的 getter 和 setter 添加到特定视图的视图模型中:

 public class PathExpanderViewModel : ViewModelBase{  
    public int Row { get; set; }
    public int Col { get; set; }

    public PathExpanderViewModel(int row, int col){
         Row = row;
         Col = col;
    }
}

我希望这可以帮助其他有同样问题的人,尽管我仍然不是 100% 清楚 :)

于 2012-05-09T08:10:14.510 回答