public static object GetCurrentViewModel(FrameworkElement element)
{
object model = element.GetValue(ViewModelProperty);
if (model == null) {
element = element.GetParentVisual();
while (element != null) {
model = element.GetValue(ViewModelProperty);
if (model != null) {
break;
}
element = element.GetParentVisual();
}
}
if (model == null) {
IApplicationContext appContext = null;
if (ComponentContainer.Global != null) {
appContext = ComponentContainer.Global.GetObject<IApplicationContext>();
}
if (appContext != null) {
model = appContext.Model;
}
}
return model;
}