0

MVVMで構築されたWPFデスクトップアプリがあり、MainWindow.xamlですべてのビューを利用できます。問題は、ビューがWindow.Resourcesに表示される順序でリストされ、それぞれが画面全体に広がっていることです。2つのビューをメインウィンドウに並べて表示したいと思います。

明確にするために、ツリーの視覚化を含むタブコントロールビューがあり、その横には、タブの内側から情報を開いて表示する2つのエキスパンダーがあります。アプリはビューを一覧表示するため、エキスパンダーはタブ領域の下にあります。私は彼らが横になってタブの上にポップアップする(部分的に覆い隠される)ことを望んでいます。

これにより、observableCollection ViewModels(MainWindow.xaml)が取得されます。

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

したがって、これらはMainWindowViewModelクラスに追加されます。

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

グリッドに配置できない場合、メインウィンドウビューに2つのビューを並べて配置するにはどうすればよいですか?

前もって感謝します!

編集:スクリーンショット評判のために画像などを追加できません。リンクはこちら:http://imgur.com/7y1yj

4

1 に答える 1

0

mainWindowViewModel のこれらの行に「座標」を追加することでした。

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

xaml ファイルでグリッドを使用し、特定のビューのビューモデルに行と列のゲッターとセッターを追加します。

 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 に答える