免责声明:我真的是WPF的新手。
在网上浏览后,我了解到HttpClient应该用作WPF中Windows之间共享的单例。
但是,我似乎找不到在MVC中找到的清晰的启动入口点(启动,du!)。
我应该在哪里实例化HttpClient,如何在多个窗口中使用它?
目前我有两个窗户。登录名和MainWindow。两者都非常基础。例子:
public partial class Login : Window
{
public Login()
{
InitializeComponent();
}
private void BtnLoginSubmit_Click(object sender, RoutedEventArgs e)
{
}
}
在我的App.xaml.cs中,我实例化了一个HttpClient对象,可以从我的MainWindow访问该对象:
App.xaml.cs:
public partial class App : Application
{
public HttpClient httpClient { get; set; }
}
MainWindow.xaml.cs:
public partial class MainWindow : Window
{
private static ObservableCollection<string> states;
public static void Add(string state)
{
states.Add(state);
}
public MainWindow()
{
InitializeComponent();
((App)Application.Current).httpClient = new HttpClient();
states = new ObservableCollection<string>();
states.Add("Initialized");
states.CollectionChanged += states_CollectionChanged;
LblStates.ItemsSource = states;
Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);
}
static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
if (e.Reason == SessionSwitchReason.SessionLock)
{
}
MainWindow.Add(e.Reason.ToString());
}
void states_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
{
LblStates.Items.Refresh();
}
}
}
慕妹3242003
慕尼黑5688855
回首忆惘然
随时随地看视频慕课网APP
相关分类