Я пытаюсь создать UserControl, который наследуется от универсального класса. Он не наследуется напрямую от обобщенного класса, а через промежуточный класс, который не использует обобщенные значения. Это компилируется и работает во время выполнения, но я получаю ошибку во время разработки.
Вот мой общий родительский класс:
Public Class GenericParent(Of T)
Inherits UserControl
End Class
Вот мой неуниверсальный родительский класс:
Public Class NonGenericParent
Inherits GenericParent(Of String)
End Class
Вот мой XAML:
<local:NonGenericParent x:Class="SilverlightApplication5.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SilverlightApplication5"
Width="400" Height="300">
<StackPanel>
<Button Content="Hello"/>
</StackPanel>
</local:NonGenericParent>
Анализатор IntelliSense выдает следующие ошибки:
- Свойство 'Ширина' не найдено в типе 'NonGenericParent'.
- Свойство «Высота» не найдено в типе «NonGenericParent».
- Тип «NonGenericParent» не поддерживает прямой контент.
Как будто IntelliSense не может увидеть дерево наследования за классом GenericParent. Я попытался указать ContentPropertyAttribute непосредственно в классе SilverlightApplication5.Page, классе NonGenericParent, и он не работает.
Я читал, что атрибут TypeArguments не поддерживается в Silverlight 2.0. Вот почему я создал промежуточный класс NonGenericParent.
Если у кого-нибудь есть идеи, как заставить замолчать эти ошибки, я буду рад их услышать.
Обновление: Мы открыли заявку в службу поддержки MSFT, и я обновлю ее с помощью любого решения.