0

我有一个 WPF 应用程序,我需要让它在启动时显示一个“登录”窗口,然后使用用户传递的凭据连接到 WCF 服务。

问题是 - 实际的“client.Open()”发生在哪里?

在 ViewModel 中还是在 Model 中?

我认为它应该发生在一个单独的类中,但应该由 ViewModel 或 Model 调用。

哪一个 ?

4

2 回答 2

1

嗨,是的,我完全误解了你的问题,对此感到抱歉。就像当用户单击 UI 上的登录按钮时,对应于该按钮的命令被触发并调用登录的 ViewModel 方法进一步调用客户端服务类(模型)方法,该方法进一步调用服务器端服务类方法,该方法进一步调用 BLL 方法进一步调用Login的Repository方法。链就像View=> VM => ClientSideService=>ServerSideService=>BLL=>Repository。但是,如果您想或可以直接从 ViewModel 调用 ServerSide 服务,您可以跳过 ClientSide 服务。“但应该由 ViewModel 或模型调用?”的答案。是他们被称为模型。我希望这会有所帮助

于 2012-07-15T04:03:24.973 回答
0

嗨,如果我没有误解你的问题,你可以这样做

   public partial class App : Application
{
    void App_Startup(object sender, StartupEventArgs e)
    {
        // Application is running
        // Process command line args
        bool startMinimized = false;
        for (int i = 0; i != e.Args.Length; ++i)
        {
            if (e.Args[i] == "/StartMinimized")
            {
                startMinimized = true;
            }
        }

        // Create main application window, starting minimized if specified
        MainWindow mainWindow = new MainWindow();
        if (startMinimized)
        {
            mainWindow.WindowState = WindowState.Minimized;
        }
        mainWindow.Show();
    }
}

并在 xaml 中绑定应用程序的 StartUp 事件

<Application

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.App " Startup="App_Startup" />

这一切都发生在 App 类中。首先调用 Main 方法,然后创建 App 类的实例,然后调用关闭 App 的 Run 方法,此 Run 方法触发 Application_Startup 事件我希望这会有所帮助。

于 2012-07-14T07:58:29.523 回答