Я передаю URL моего веб-сервиса в мое приложение silverlight через параметры.
, когда мое приложение запускается, оно создает viewmodel для главной страницы до того, как сработало событие application_startup.
в моем конструкторе viewmodelУ меня есть вызов к моему сервисному агенту, чтобы загрузить некоторые данные из веб-сервиса, но URL-адрес веб-сервиса еще не инициализирован из-за того, что viewmodel создается до того, как будет вызвано событие application_startup.Какой лучший способ обойти это.Это вечер пятницы, и мой мозг, кажется, довольно жарен, пытаясь придумать хорошее решение.
Экземпляр ViewModelLocator создается в app.xaml
<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
Затем вВ конструкторе ViewModelLocator есть вызов для создания главной страницы
public ViewModelLocator()
{
CreateMain();
}
public static void CreateMain()
{
if (_main == null) _main = new MainViewModel();
}
, и в моей MainViewModel я вызываю мой агент обслуживания
public MainViewModel() : this(new MyServiceAgent()) { }
public MainViewModel(IMyServiceAgent myServiceAgent)
{
if (IsInDesignMode)
{
}
else
{
ServiceAgent = myServiceAgent;
ServiceAgent.GetData();
RegisterMessageListeners();
WireUpCommands();
}
}
App.xaml.cs
public App()
{
Startup += Application_Startup;
Exit += Application_Exit;
UnhandledException += Application_UnhandledException;
InitializeComponent();
}
private void Application_Startup(object sender, StartupEventArgs e)
{
if (e.InitParams != null && e.InitParams.Count > 0)
ParseInitParams(e.InitParams);
RootVisual = new MainPage();
DispatcherHelper.Initialize();
}
Приветствия