我有一个 WPF 应用程序,我需要让它在启动时显示一个“登录”窗口,然后使用用户传递的凭据连接到 WCF 服务。
问题是 - 实际的“client.Open()”发生在哪里?
在 ViewModel 中还是在 Model 中?
我认为它应该发生在一个单独的类中,但应该由 ViewModel 或 Model 调用。
哪一个 ?
嗨,是的,我完全误解了你的问题,对此感到抱歉。就像当用户单击 UI 上的登录按钮时,对应于该按钮的命令被触发并调用登录的 ViewModel 方法进一步调用客户端服务类(模型)方法,该方法进一步调用服务器端服务类方法,该方法进一步调用 BLL 方法进一步调用Login的Repository方法。链就像View=> VM => ClientSideService=>ServerSideService=>BLL=>Repository。但是,如果您想或可以直接从 ViewModel 调用 ServerSide 服务,您可以跳过 ClientSide 服务。“但应该由 ViewModel 或模型调用?”的答案。是他们被称为模型。我希望这会有所帮助
嗨,如果我没有误解你的问题,你可以这样做
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 事件我希望这会有所帮助。