如何使用外部程序监听变量属性更改

时间:2016-03-31 10:19:20

标签: vb.net vba ole

我的程序存在问题,其核心使用类变量来连接,控制和提取名为PowerShape的CAD / CAM软件中的信息。

我正在尝试做的是听取这个类变量来检测其属性的变化,如果你在Powershape中做某些事情就会发生这种变化。这些将包括在Powershape内部更改的活动窗口或模型。在进行更改时,类变量正在更新,但我无法弄清楚如何检测它。

当声明类变量时,它连接到Powershape然后你可以访问它的属性:

Dim powershapeRoot As New PSAutomation(Delcam.ProductInterface.InstanceReuse.UseExistingInstance)
Dim PSmodelname = PowershapeRoot.activemodel.name

现在我想听一下变量属性“PowershapeRoot.activemodel.name”,看它是否有变化

怎么做?

1 个答案:

答案 0 :(得分:0)

要检测属性中的更改,可以使用INotifyPropertyChanged接口。

您将从MSDN找到here文档。

在您的属性的setter中,您需要包含用于引发事件的代码。您可以在VB.NET中找到以下示例:

Public Class Demo Implements INotifyPropertyChanged

    Private nameValue As String = String.Empty

    Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged

    Private Sub NotifyPropertyChanged(ByVal info As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
    End Sub

    Public Property name() As String
        Get
            Return Me.nameValue
    End Get

    'Raise the event in the setter
    Set(ByVal value As String)
        If Not (value = nameValue) Then
            Me.nameValue = value
            NotifyPropertyChanged("name")
        End If
    End Set
    End Property
End Class