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

时间:2015-01-21 14:32:47

标签: c# mvvm bing-maps

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

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

我需要将Map的这个实例传递给我的viewModel,它位于另一个项目(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的建议持开放态度。 谢谢!

1 个答案:

答案 0 :(得分:1)

地图本身有一个Loaded事件,您可以使用该事件在加载后获取地图。