将在代码隐藏中创建的对象注入到 ViewModel



我使用 Bing 地图创建一个应用程序,并在我的 XAML 文件中创建一个映射实例,如下所示:

<maps:Map x:Name="MyMap"/>

我需要将这个地图实例传递给我的视图模型,该模型位于另一个项目(PCL)中,以便"使用"它。我有

我假设地图是在代码隐藏中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 事件,可用于在加载地图后获取映射。

最新更新