Цитата:
Сообщение от
skuull
Все так. Только вопрос - что мы хотим получить?
В данном примере делается расширение класса и мы получим изменим исходную ссылку. Т.е. это будет "вариант А".
Но с другой стороны - концептуально (на мой взгляд) сделать именно Extension как в том примере - более правильно.
Мой пример хорош как вариант кода "с одним объектом". Ну и мне всегда нравятся готовые примеры, которые можно скачать, влить к себе без лишних телодвижений и они сразу заработают.
Я не ломал стандартный функционал только по одной причине - если ссылка не будет работать (из-за внутренней логики какой-нибудь формы), то останется возможность использовать обычную (штатную) ссылку. Если бы я мог гарантировать работоспособность своего примера в 100% случаях всех форм, то можно было бы и заменить штатный функционал на измененный.
Ну и вообще моя позиция такова - что очень не хватает материалов на русском языке, даже если есть альтернатива на английском (не люблю буржуйский язык). Я не пользовался той статьей и она мне при поиске не попалась, поэтому привожу примеры на русском языке, даже если есть альтернативы на английском. Если источник примеров был на английском языке - то делаю ссылку. Если пример был написан самостоятельно - то ссылку не делаю.
Цитата:
Сообщение от
skuull
И зачем "if (formRun" ? Он или есть или мы ловим null reference exception до if
X++:
FormDataSource formDS = formRun.dataSource();
if (formRun && formRun.isRootNavigable())
Код был взят с исходной формы FormRunGetLinkAction, плюс добавлено обновление датасорса. Замечание корректное, но ... null reference exception никогда не будет словлено, т.к. панель кнопок всегда привязана к исходной форме. Т.е. здесь просто лишняя проверка на formRun, которая в целом никому не мешает.