MVVM Light Silverlight - 用于添加/编辑订单的子窗口

本文关键字:窗口 编辑 Silverlight Light 用于 添加 MVVM | 更新日期: 2023-09-27 18:31:27

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

我对某些事情相当困惑,这可能是因为我习惯于只使用 winforms。

我有一个包含订单列表和 2 个按钮的页面,"编辑"和"添加",我不知道如何使用 mvvm 模式向用户显示子窗口。

我有一个mainviewmodel

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

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

不确定我是否想多了。

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

提前感谢,克劳斯

编辑:10 年没有编码了,我最初的想法当然是在代码隐藏中创建一个新的子窗口并覆盖其构造函数以采用 orderviewmodel,但我宁愿以正确的方式进行。

MVVM Light Silverlight - 用于添加/编辑订单的子窗口

您可以创建一个窗口,并且可以添加不同的子控件

<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>