0

私は自分の会社の Silverlight イントラネット アプリケーションを開発しています。mvvm がエキサイティングなパターンであることがわかり、それを使いたいと思っています。mvvm ライト ツールキットのビデオも見ました。

私は何かについてかなり混乱しています。これは、winforms でのみ作業することに慣れているためかもしれません。

注文のリストと「編集」と「追加」の 2 つのボタンを含むページがありますが、mvvm パターンを使用して子ウィンドウをユーザーに表示する方法がわかりません。

メインビューモデルとオーダービューモデルがあり、メインビューモデルにはオーダービューモデルの監視可能なコレクションがあります。

注文リストに問題なく入力できます。私の唯一の問題は、編集ウィンドウと追加ウィンドウを表示する方法を理解することです..パターンに固執しています。

私がこれを考えすぎているかどうかはわかりません。

より多くの情報が必要な場合はお知らせください。

前もって感謝します、クラウス

編集: 10 年間コーディングしていなかったので、コード ビハインドで新しい子ウィンドウを作成し、そのコンストラクターをオーバーライドして orderviewmodel を取得することを最初に考えましたが、正しい方法で行いたいと思います。

4

1 に答える 1

0

ウィンドウを作成して、別の子コントロールを追加できます

<Window x:Class="RetailPOS.Dashboard"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"          
        xmlns:Child="clr-namespace:RetailPOS.View.Usercontrols.MainWindow"
        x:Name="DashBoardCntrl"
           xmlns:WpfKb="clr-namespace:WpfKb.Controls;assembly=WpfKb"
        Title="MainWindow" Height="768" Width="1024"  ResizeMode="NoResize" WindowStartupLocation="CenterScreen" >
<Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
         </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <StackPanel Orientation="Vertical" Grid.Column="0">
            <Child:MergeUserInfoSearch x:Name="UserInfo" HorizontalAlignment="Left"  Margin="1,0,0,0" Width="513"></Child:MergeUserInfoSearch>
             <Child:MenuControl x:Name="MenuCtrl" HorizontalAlignment="Left"  Margin="1,0,0,0" Width="510"></Child:MenuControl>
            <GroupBox Height="159" Margin="8 0 0 0" HorizontalAlignment="Left"  VerticalAlignment="Top" Background="AliceBlue"  Header="Categories" Width="499">
                <Child:Categories  x:Name="cat" HorizontalAlignment="Left"  Margin="1,0,0,0" ></Child:Categories>
            </GroupBox>
            <GroupBox Height="360" Margin="5 0 0 0" HorizontalAlignment="Left"  Grid.Row="1" VerticalAlignment="Top" Background="AliceBlue" Header="Products">
                <Child:Products HorizontalAlignment="Left" x:Name="prod"  Margin="1,0,0,0"></Child:Products>
            </GroupBox>
        </StackPanel></Grid>
于 2013-09-16T16:41:56.443 に答える