Я привязываю интерфейс к интерфейсу (который реализуется несколькими докладчиками, недоступными из сборки пользовательского интерфейса).
Мне очень нравится d: DesignInstance в дизайнере, потому что он (тип) делает xaml строго типизированным с помощью R #.
К сожалению, d: DesignInstance не поддерживает типы интерфейсов: "Невозможно создать экземпляр интерфейса".
Первое, что я подумал: "Хорошо, не проблема", создайте собственное расширение разметки, которое принимает параметр System.Type как параметр, и какой метод ProvideValue возвращает поддельный экземпляр (фиктивная реализация этого интерфейса, создаваемая динамическим IL).
Это работает очень хорошо, привязки разрешаются во время разработки (я вижу, что на панели дизайна, так как мое расширение разметки заполняет свойства объекта с помощью lorem-ipsum)
НО самая лучшая функция R # не работает: Resharper не распознает тип datacontext и просто дает сообщение "Невозможно разрешить свойство" {0} 'в контексте данных типа "объект"
Кто-нибудь знает, как это исправить?
(любая альтернатива, которая позволила бы мне позволить R # знать об интерфейсе типа datacontext, было бы замечательно)
Спасибо!
ps: Я также попытался создать другое расширение разметки, которое возвращает сгенерированный тип среды выполнения, чтобы передать его DesignInstance: "{d: DesignInstance Type = {utilsUi: Тип экземпляра: пользователь}}" = > Дает ошибку "Объект типа" InstanceType "не может быть преобразован в тип" System.Type" ... кажется, что DesignInstance не поддерживает внутренние расширения разметки: (