2012-01-27 112 views
0

你們大人可以幫助翻譯一下嗎?C#到VB.NET委託命令翻譯

未指定'Private Sub OpenUserDetail(userList as Model.UserList)'的'userList'的參數。它在C#版本中工作只是不確定C#到VB的翻譯。任何幫助將不勝感激。 :)

原宣言中C#:

private readonly DelegateCommand<EmailDocument> openMessageCommand; 

this.openMessageCommand = new DelegateCommand<EmailDocument>(this.OpenMessage); 

private void OpenMessage(EmailDocument document) { 
    // Do stuff 
} 

VB翻譯:

Private ReadOnly openUserCommand As DelegateCommand(Of UserList) 

Me.openUserCommand = New DelegateCommand(Of UserList)(Me.OpenUserDetail) 

Private Sub OpenUserDetail(userList As UserList) 
    ' Do stuff 
End Sub 

注:

VB版 - UserList是一個類的實例
C#版 - EmailDocument是類實例

個###########編輯

中添加更多細節:

XAML調用代碼:

<UserControl.Resources> 
    <command:ObservableCommand x:Name="OpenUserCommand" Value="{Binding OpenUserCommand}"/> 
</UserControl.Resources> 

     <sdk:DataGrid.Columns> 
      <sdk:DataGridTemplateColumn Header="Name" Width="150*" MinWidth="150"> 
       <sdk:DataGridTemplateColumn.HeaderStyle> 
        <Style TargetType="sdk:DataGridColumnHeader"> 
         <Setter Property="ContentTemplate"> 
          <Setter.Value> 
           <DataTemplate> 
            <ComboBox Name="cboNameFormat" 
             HorizontalAlignment="Stretch" 
             VerticalAlignment="Stretch" 
             Height="Auto" 
             Width="180" SelectedValuePath="Tag" > 
             <ComboBoxItem Tag="%0 %1" IsSelected="True">First Name Last Name</ComboBoxItem> 
             <ComboBoxItem Tag="%1, %0">Last Name, First Name</ComboBoxItem> 
            </ComboBox> 
           </DataTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </sdk:DataGridTemplateColumn.HeaderStyle> 
       <sdk:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <HyperlinkButton x:Name="hbtnName" 
          **Command="{Binding Value, Source={StaticResource OpenUserCommand}}"** 
          CommandParameter="{Binding}" 
          VerticalAlignment="Center" 
          AutomationProperties.AutomationId="OpenMailHyperLink" 
          Content="{Binding Name}"> 
          <!--<HyperlinkButton.Content> 
           <mvc:MultiBinding Source1="FirstName" Source2="LastName" StringFormat="{Binding SelectedValue, ElementName=cboNameFormat}" > 
            <mvc:BindingCollection> 
             <Binding Path="FirstName" /> 
             <Binding Path="LastName" /> 
            </mvc:BindingCollection> 
           </mvc:MultiBinding> 
          </HyperlinkButton.Content>--> 
         </HyperlinkButton> 
        </DataTemplate> 
       </sdk:DataGridTemplateColumn.CellTemplate> 
      </sdk:DataGridTemplateColumn> 
      <sdk:DataGridTextColumn Header="Role" MinWidth="150" Binding="{Binding Role, StringFormat=g}" CanUserSort="True"/> 
      <sdk:DataGridTextColumn Header="Company" MinWidth="150" Binding="{Binding Company, StringFormat=g}" CanUserSort="False"/> 
      <sdk:DataGridTextColumn Header="Phone" MinWidth="150" Binding="{Binding Phone, Converter={StaticResource stringToPhoneNumberConverter}}" CanUserSort="False"/> 
      <sdk:DataGridTextColumn Header="Phone" MinWidth="150" Binding="{Binding Email, StringFormat=g}" CanUserSort="False"/> 
      <sdk:DataGridTextColumn Header="Phone" MinWidth="150" Binding="{Binding Address, StringFormat=g}" CanUserSort="False"/> 
     </sdk:DataGrid.Columns> 
    </sdk:DataGrid> 

VB.NET物業:

Private ReadOnly openUserCommand As DelegateCommand(Of UserList) 

    <ImportingConstructor()> _ 
    Public Sub New(userService As IUserService, regionManager As IRegionManager) 
     Me.openUserCommand = New DelegateCommand(Of UserList)(Me.OpenUserDetail) 
    End Sub 

#Region "OpenUserCommand" 
    Public ReadOnly Property OpenUserCmd() As ICommand 
     Get 
      Return Me.openUserCommand 
     End Get 
    End Property 

    Private Function OpenUserDetail(userList As UserList) 
     ' This view initiates navigation using the RegionManager. 
     ' The RegionManager will find the region and delegate the 
     ' navigation request to the region specified. 
     ' 
     ' This navigation request also includes additional navigation context, an 'EmailId', to 
     ' allow the Email view to orient to the right item. The navigation request and context 
     ' is built using a UriQuery that helps build the request. 
     If userList Is Nothing Then Return Nothing 
     Dim builder = New StringBuilder() 
     builder.Append(UserViewKey) 
     Dim query = New UriQuery() 
     query.Add(UserId, userList.ID.ToString) 
     builder.Append(query) 
     Me.regionManager.RequestNavigate(RegionNames.MainContentRegion, New Uri(builder.ToString(), UriKind.Relative)) 
     Return Nothing 
    End Function 
#End Region 
+0

http://www.developerfusion.com/tools/convert/csharp-to-vb/ – 2012-01-27 00:58:20

+1

這就是原來的翻譯是從哪裏來的。 :) – 2012-01-27 00:59:56

+0

您發佈的代碼似乎不是問題。我們可以看到請求調用'OpenUserDetail'的代碼嗎? – Ryan 2012-01-27 01:00:51

回答