Невозможно реализовать ICommandSource в VB - PullRequest
0 голосов
/ 08 января 2010

Кто-нибудь когда-нибудь пытался реализовать ICommandSource с VB? Microsoft предоставляет примеры на C #, и, поскольку VB не допускает неявную реализацию, этот интерфейс подобен недостижимому в VB !!

http://msdn.microsoft.com/en-us/library/ms771361.aspx

1 Ответ

1 голос
/ 08 января 2010

Это зависит от того, в каком классе вы хотите его реализовать. Если вы вводите свойства Command, CommandParameter и CommandTarget в своем собственном классе (где вы реализуете интерфейс), вы можете просто реализовать его как любой другой интерфейс:

Public ReadOnly Property Command() As ICommand
  Implements ICommandSource.Command
  Get
    ' implementation goes here
  End Get
End Property

Кстати, вы все еще можете использовать DP для реализации: директива Implements находится в свойстве CLR и не мешает реализации "не трогать" методов получения и установки.

Если класс, в котором вы хотите его реализовать, уже имеет (унаследованные) свойства Command, CommandParameter и CommandTarget и вы хотите, чтобы реализация интерфейса использовала их повторно, вам нужно будет создать новые свойства с новыми именами, объявить их как интерфейс реализации и обратно их на существующие свойства

Public ReadOnly Property ICommandSource_Command() As ICommand
  Implements ICommandSource.Command
  Get
    Return Me.Command  ' the existing implementation that can't be made implicit
  End Get
End Property
...