2013-06-13 73 views
1

錯誤我想下面這段C#代碼轉換爲VB.NETRaisePropertyChanged - 而從C#代碼轉換到VB.NET

/// <summary> 
/// Attempts to raise the PropertyChanged event, and invokes the virtual AfterPropertyChanged 
/// method, regardless of whether the event was raised or not. 
/// </summary> 
/// <param name="propertyName"> 
/// The property which was changed. 
/// </param> 

    protected void RaisePropertyChanged(string propertyName) 
    { 
     this.VerifyProperty(propertyName); 

     PropertyChangedEventHandler handler = this.PropertyChanged; 
     if (handler != null) 
     { 
      //Get the cached event args. 
      PropertyChangedEventArgs args = GetPropertyChangedEventArgs(propertyName); 

      //Raise the PropertyChanged event. 
      handler(this, args); 
     } 
    } 

轉換後,VB代碼是:

''' <summary> 
''' Attempts to raise the PropertyChanged event, and invokes the virtual AfterPropertyChanged 
''' method, regardless of whether the event was raised or not. 
''' </summary> 
''' <param name="propertyName"> 
''' The property which was changed. 
''' </param> 
Protected Sub RaisePropertyChanged(propertyName As String) 
    Me.VerifyProperty(propertyName) 

    Dim handler As PropertyChangedEventHandler = Me.PropertyChanged 

    If handler IsNot Nothing Then 
     'Get the cached event args. 
     Dim args As PropertyChangedEventArgs = GetPropertyChangedEventArgs(propertyName) 

     'Raise the PropertyChanged event. 
     handler.Invoke(Me, args) 
    End If 
End Sub 

我使用了Telerik Code Converter,它不能完全轉換事件和XML屬性等。

問題是,Visual Studio顯示以下錯誤: 錯誤103'公共事件PropertyChanged(sender As Object,e As System.ComponentModel.PropertyChangedEventArgs)'是一個事件,無法直接調用。使用'RaiseEvent'語句來引發一個事件。

你能好心幫我這個,因爲我不擅長VB.NET語法和這樣的:(

+0

Dim handler As PropertyChangedEventHandler = Me.PropertyChanged – Harsha

+0

在VB中,在處理事件時必須使用AddressOf。所以也許你可以使用「AddressOf Me.PropertyChanged。 – Terry

回答

3

只需更換 昏暗處理程序作爲PropertyChangedEventHandler = Me.PropertyChanged 與 昏暗處理程序作爲PropertyChangedEventHandler = Me.PropertyChangedEvent

1

您需要先定義的PropertyChanged可變

這樣的: 公共事件PropertyChangedEventHandler的PropertyChanged;

+0

我已經做到了。 – Harsha