#c# #wpf #mvvmcross
Вопрос:
В MvvmCross.Ведущие.Mvxattributeviewпредставитель Методы показа, похоже, отличаются от предыдущих версий. В настоящее время мне пришлось переопределить показ ведущего по умолчанию следующим образом, который совпадает с 6.4.2.
public override Task<bool> Show(MvxViewModelRequest request)
{
var tmp = GetPresentationAttributeAction(request, out MvxBasePresentationAttribute attribute).ShowAction.Invoke(attribute.ViewType, attribute, request);
return tmp;
}
Исходный код выглядит следующим образом, но я не понимаю, почему он был изменен.
public override Task<bool> Show(MvxViewModelRequest request)
{
var attributeAction = GetPresentationAttributeAction(request, out MvxBasePresentationAttribute attribute);
if (attributeAction.ShowAction != null amp;amp; attribute.ViewType != null)
return attributeAction.ShowAction.Invoke(attribute.ViewType, attribute, request);
return Task.FromResult(false);
}
Комментарии:
1. Новый метод show не предполагает, что свойства showAction и viewType в атрибуте представления всегда ненулевые. Другими словами, поведение точно такое же, но реализация менее хрупкая. Ваше приложение не выйдет из строя и вместо этого просто ничего не будет делать при попытке обработать атрибут представления, в котором эти поля не определены.