private void BuildupView(IComponentContext context, DependencyObject instance)
{
try
{
if (instance == null)
return;
foreach (object c in LogicalTreeHelper.GetChildren(instance))
{
var child = c as DependencyObject;
if (child == null)
continue;
BuildupView(context, child);
}
Type viewInterfaceType = instance.GetType().GetInterface(typeof (IView<>).FullName);
if (viewInterfaceType == null)
return;
PropertyInfo viewModelProperty = viewInterfaceType.GetProperty("ViewModel");
Type viewModelType = viewInterfaceType.GetGenericArguments()[0];
object viewModel = context.Resolve(viewModelType);
viewModelProperty.SetValue(instance, viewModel, null);
viewInterfaceType.GetMethod("ViewInitialized").Invoke(instance, null);
}
catch (Exception e)
{
}
}
}