将在代码隐藏中创建的对象注入到 ViewModel
Inject object created in code-behind to ViewModel
我正在使用 Bing 地图创建应用程序,并在我的 XAML 文件中创建地图实例,如下所示:
<maps:Map x:Name="MyMap"/>
我需要将这个 Map 实例传递给我的 viewModel,它在另一个项目 (PCL) 中,以便 "use" 它。我有
我假设地图是在代码隐藏的 this.InitializeComponent()
中创建的。
public MainPage()
{
this.InitializeComponent();
}
这也是我的 DI 被触发的地方:
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
SimpleIoc.Default.Register<MainViewModel>();
SimpleIoc.Default.Register<IMap, MyBingMap>();
}
MyBingMap
是我希望传递给 VM 的 IMAP 实现。但在我这样做之前,我需要它拥有在代码隐藏中创建的 Map 实例。
我希望我的问题对某些人来说足够清楚。
我对所有可以将 myMap
传递给 VM 的建议持开放态度。
谢谢!
地图本身有一个 Loaded 事件,加载后您可以使用该事件获取地图。
我正在使用 Bing 地图创建应用程序,并在我的 XAML 文件中创建地图实例,如下所示:
<maps:Map x:Name="MyMap"/>
我需要将这个 Map 实例传递给我的 viewModel,它在另一个项目 (PCL) 中,以便 "use" 它。我有
我假设地图是在代码隐藏的 this.InitializeComponent()
中创建的。
public MainPage()
{
this.InitializeComponent();
}
这也是我的 DI 被触发的地方:
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
SimpleIoc.Default.Register<MainViewModel>();
SimpleIoc.Default.Register<IMap, MyBingMap>();
}
MyBingMap
是我希望传递给 VM 的 IMAP 实现。但在我这样做之前,我需要它拥有在代码隐藏中创建的 Map 实例。
我希望我的问题对某些人来说足够清楚。
我对所有可以将 myMap
传递给 VM 的建议持开放态度。
谢谢!
地图本身有一个 Loaded 事件,加载后您可以使用该事件获取地图。