0

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

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

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

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

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

我不确定我是否在想这件事。

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

提前感谢,克劳斯

编辑:在 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 回答