如何绑定到ToolStripMenuItem的Enabled属性

Jef*_*f B 2 .net vb.net binding winforms

我正在尝试做MVP,我有一个视图特定的模型,主持人操纵和视图绑定.演示者和视图之间没有其他连接(视图通过网关类型模式触发对域模型的命令).

你可以猜到,这使得能够绑定任何对象的任何属性都非常重要.

我找不到绑定到Enableda属性的正确方法ToolStripMenuItem.大多数控件都有一个.DataBindings属性,但是这个属性似乎缺少它.我没有在网上找到有关如何执行此操作的详细信息.它甚至可能吗?

小智 6

我在这里找到了答案:创建一个实现IBindableComponent的自定义ToolStripMenuItem.

链接示例:

Public Class BindableToolStripMenuItem
    Inherits ToolStripMenuItem
    Implements IBindableComponent

    Private m_bindingContext As BindingContext
    Private m_dataBindings As ControlBindingsCollection

    <Browsable(False)> _
    Public Property BindingContext() As BindingContext
        Get
            If m_bindingContext Is Nothing Then
                m_bindingContext = New BindingContext()
            End If
            Return m_bindingContext
        End Get
        Set(value As BindingContext)
            m_bindingContext = value
        End Set
    End Property

    <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
    Public ReadOnly Property DataBindings() As ControlBindingsCollection
        Get
            If m_dataBindings Is Nothing Then
                m_dataBindings = New ControlBindingsCollection(Me)
            End If
            Return m_dataBindings
        End Get
    End Property
End Class
Run Code Online (Sandbox Code Playgroud)