3

ユーザーの操作に基づいて連続するウィンドウを開くWPFアプリを作成しました。たとえば、最初のwinodwは、ユーザーが作業したいモジュールを尋ねます。選択が行われ、ボタンが押されると、新しいウィンドウが開き、いくつかのベンダーと要約カウントが表示されます。それらのベンダーの1つを選択し、[編集]ボタンを押すと、そのベンダーの詳細を示す別のウィンドウが開きます。詳細をクリックしてからボタンをクリックすると、ユーザーがいくつかの番号などを変更できるさらに別のウィンドウが開きます。次に、ユーザーはそのウィンドウを閉じて別のアイテムを選択して編集するか、そのウィンドウを閉じて別のベンダーを選択します。各ウィンドウには独自のウィンドウがあります。現在モデルを表示します。私は窓のすべての層を取り除きたいです。ユーザーは正しいシーケンスなどを実行する必要があるため、タブコントロールは適切なオプションではないようです。

4

2 に答える 2

4

個人的に<ContentControl />は、コンテンツ領域にを使用し、ユーザーの現在の「ウィンドウ」に基づいてアクティブなコンテンツを交換することを好みます。

のブログにはあなたが見ることができる例がありますが、基本的なコンポーネントは次のようになります。

ViewModel:

ObservableCollection<IViewModel> AvailableScreens;
IViewModel ActiveScreen;

ICommand SetActiveScreenCommand;

次のようなXAMLを使用します。

<ContentControl Content="{Binding ActiveScreen}" />

そして、私は通常、DataTemplates各ViewModelの描画方法をWPFに指示するために使用します

<Window.Resources>
    <DataTemplate DataType="{x:Type local:ModulesViewModel}">
        <local:ModulesView />
    </DataTemplate>

    <DataTemplate DataType="{x:Type local:VendorsViewModel}">
        <local:VendorView />
    </DataTemplate>

    <DataTemplate DataType="{x:Type local:EditVendorViewModel}">
        <local:EditVendorView />
    </DataTemplate>
</Window.Resources>
于 2013-03-12T15:13:15.757 に答える
0

VisualStudioの動作を模倣するAvalonDockなどのドッキングフレームワークを使用できます。

于 2013-03-12T14:24:42.063 に答える