mvvm light silverlight - 用于添加/编辑订单的子窗口

时间:2013-09-15 20:56:40

标签: c# mvvm-light silverlight-5.0

我正在为我的公司开发一个silverlight内部网应用程序,发现mvvm是一个令人兴奋的模式,并且很乐意使用它,还观看了mvvm light toolkit的视频。

我对某些事情感到很困惑,这可能是因为我以前只习惯使用winforms。

我有一个包含订单列表和2个按钮的页面,“编辑”和“添加”,我无法弄清楚如何使用mvvm模式向用户显示子窗口。

我有一个mainviewmodel和一个orderviewmodel,mainviewmodel有一个可观察的orderviewmodel集合。

我可以将订单列表填好,我唯一的问题是弄清楚如何显示编辑窗口和添加窗口..坚持模式。

我不确定我是不是想过这个。

我非常感谢任何可以引导我朝着正确方向前进的帮助,如果需要更多信息,请告诉我。

提前致谢, 克劳斯

编辑:在10年内没有编码,我最初的想法是在代码隐藏中创建一个新的子窗口并覆盖它的构造函数以获取orderviewmodel但我宁愿以正确的方式执行它。

1 个答案:

答案 0 :(得分: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>