private static FrameworkElement GetControlInternal(IHostedControlViewModel viewModel) { var exportType = typeof (IView<>).MakeGenericType(viewModel.GetType()); var element = (FrameworkElement)OpenGenericGetExportedValue.MakeGenericMethod(exportType).Invoke(Container, null); element.DataContext = viewModel; return element; }
public static FrameworkElement GetControl(IHostedControlViewModel viewModel) { return HostedControlLookup.GetOrAdd(viewModel, GetControlInternal); }