2016-05-19 3 views
0

Я создал MarkupExtension, который предоставляет в конвертер свойство типа IValueConverter, то Intellisens в визуальной студии находит его, но когда я пытаюсь скомпилировать я получаю следующее сообщение об ошибке: Unknown property 'Converter' for type 'MS.Internal.Markup.MarkupExtensionParser+UnknownMarkupExtension' encountered while parsing a Markup Extension.Пользовательские MarkupExtension со свойствами

EnumItemSourceBinding:

Public Class EnumItemSourceBinding 
    Inherits MarkupExtension 
    Implements INotifyPropertyChanged 

    Private mEnumType As Type 
    Private mConverter As IValueConverter 

    <DefaultValue(CObj(Nothing))> 
    Public Property EnumType As Type 
     Get 
      Return mEnumType 
     End Get 
     Set(value As Type) 
      mEnumType = value 
      OnPropertyChanged(NameOf(EnumType)) 
      mBindingChanged = True 
     End Set 
    End Property 

    <DefaultValue(CObj(Nothing))> 
    Public Property Converter As IValueConverter 
     Get 
      Return mConverter 
     End Get 
     Set(value As IValueConverter) 
      mConverter = value 
      OnPropertyChanged(NameOf(Converter)) 
      mBindingChanged = True 
     End Set 
    End Property 

    Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged 

    Public Sub New() 
     MyBase.New() 

    End Sub 

    Public Sub New(enumType As Type) 
     MyBase.New() 
     mEnumType = enumType 
    End Sub 

    Private Sub OnPropertyChanged(ByVal propertyName As String) 
     RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName)) 
    End Sub 
End Class 

Xaml: {local:EnumItemSourceBinding {x:Type local:BoundTextFields}, Converter={StaticResource EnumToTextConverter}}

Почему я получаю ошибку компиляции?

ответ

0

Кажется, вы не можете определить MarkupExtension в том же сборке, где вы хотите его использовать, поэтому мне пришлось разделить его.