我想要做MVP,其中我有一个视图特定模型,演示者操作和视图绑定到。演示者和视图之间没有其他连接(视图通过网关类型模式将命令发送到域模型)。如何绑定到ToolStripMenuItem的Enabled属性
正如你所猜测的,这使得绑定到任何对象的任何属性都非常重要。
我很难找到绑定到ToolStripMenuItem
的Enabled
属性的正确方法。大多数控件拥有.DataBindings
属性,但这个似乎缺乏它。我还没有找到关于如何做到这一点的许多信息。它甚至有可能吗?
我想要做MVP,其中我有一个视图特定模型,演示者操作和视图绑定到。演示者和视图之间没有其他连接(视图通过网关类型模式将命令发送到域模型)。如何绑定到ToolStripMenuItem的Enabled属性
正如你所猜测的,这使得绑定到任何对象的任何属性都非常重要。
我很难找到绑定到ToolStripMenuItem
的Enabled
属性的正确方法。大多数控件拥有.DataBindings
属性,但这个似乎缺乏它。我还没有找到关于如何做到这一点的许多信息。它甚至有可能吗?
我找到了答案here:创建一个实现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
我喜欢从其他用户听到,特别是它怎么可能能够实现绑定到一个ToolStripMenuItem
的Enabled
属性...以下是我迄今为止的发现:
最用户控件继承自System.Windows.Forms.Control
,它具有它们继承的DataBindings
属性。但是,ToolStripMenuItem
不会继承Control
,因此您无法将绑定添加到DataBindings
集合。这不完全是一个令人满意的答案,但至少可以解释为什么这样做是不可能的。
不错,做工相当不错:d感谢分享! –