一些IBindableComponent接口实现问题

时间:2011-01-19 15:13:21

标签: .net vb.net

我需要将IBindableComponent实现为以下代码:

Public Class InfragisticsToolStripBindableButton
  Inherits Infragistics.Win.UltraWinToolbars.ButtonTool
  Implements IBindableComponent

  Private _DataBindings As ControlBindingsCollection
  Private _BindingContext As BindingContext

  Public Event Disposed As EventHandler Implements IBindableComponent.Disposed

  Sub New()
    MyBase.New(String.Empty)
  End Sub

  Public ReadOnly Property DataBindings() As ControlBindingsCollection
    Get
      If _DataBindings Is Nothing Then
        _DataBindings = New ControlBindingsCollection(Me)
      End If
      Return _DataBindings
    End Get
  End Property

  Public Property BindingContext() As BindingContext
    Get
      If _BindingContext Is Nothing Then
        _BindingContext = New BindingContext()
      End If
      Return _BindingContext
    End Get
    Set(ByVal value As BindingContext)
      _BindingContext = value
    End Set
  End Property

  Public Overloads Sub Dispose()
    '???????? include bellow code '
    RaiseEvent Disposed(Me, EventArgs.Empty)
  End Sub

  'Protected Overrides Sub Dispose(ByVal disposing As Boolean)
  '  If disposing Then
  '    If _DataBindings IsNot Nothing Then
  '      _DataBindings.Clear()
  '      _DataBindings = Nothing
  '    End If
  '    _BindingContext = Nothing
  '  End If
  '  MyBase.Dispose(disposing)
  'End Sub
End Class

1问题:
警告:事件'Disposed'与基类'DisposableObject'中的'Disposed'属性冲突,应声明为'Shadows'

2问题:
错误: 类'InfragisticsToolStripBindableButton'必须为接口'System.ComponentModel.IComponent'实现'Property Site As ISite'。实现属性必须具有匹配的'ReadOnly'或'WriteOnly'说明符。

如果我实现“IBindableComponent”??

,为什么要实现“IComponent”

3问题:
如果它已经在基类中实现,但是显然不是虚拟的,我应该如何覆盖“Dispose”。

1 个答案:

答案 0 :(得分:3)

您可以为Disposed命名任何名称,它不需要与界面相同。

 Public Event StripDisposed As EventHandler Implements IBindableComponent.Disposed

看看它是如何保持实现IBindableComponent.Disposed。