5

我需要一些帮助来翻译这段代码:

C# 中的原文:

using System.Collections.ObjectModel;
using Microsoft.Maps.MapControl;

namespace Binding_Bing_Map_Control.Modal
{
public class MapModal
{
    public Location MapLocation { get; set; }
    public string TooltipText { get; set; }

    public static ObservableCollection<MapModal> getMapRecords()
    {
        ObservableCollection<MapModal> MapRecords = new ObservableCollection<MapModal>();
        MapRecords.Add(new MapModal() { MapLocation = new Location(47.610015, -122.188362), TooltipText = "Main St, Bellevue, WA 98004" });
        MapRecords.Add(new MapModal() { MapLocation = new Location(47.603562, -122.329496), TooltipText = "James St, Seattle, wa 98104" });
        MapRecords.Add(new MapModal() { MapLocation = new Location(47.609355, -122.189970), TooltipText = "Main St, Bellevue, WA 98004-6405" });
        MapRecords.Add(new MapModal() { MapLocation = new Location(47.615820, -122.238973), TooltipText = "601 76th Ave, Medina ,WA 98039" });
        return MapRecords;
    }
}
}

我对 VB 的翻译:

Imports System.Collections.ObjectModel
Imports Microsoft.Maps.MapControl

Namespace Map_Control.Modal

Public Class MapModal

    Public Property Location As WPF.Location
    Public Property TooltipTex As String

    Public Function getMapRecors() As ObservableCollection(Of MapModal)
        Dim MapRecords As New ObservableCollection(Of MapModal)
        MapRecords.Add(New MapModal() {Location = New WPF.Location(47, -122), TooltipTex = "Sample tooltiptext!"})
        Return MapRecords
    End Function

End Class

End Namespace

我收到错误:

MapRecords.Add(New MapModal() {Location = New WPF.Location(47, -122), TooltipTex = "Sample tooltiptext!"})

错误:布尔类型的值无法转换为 WindowsApplication1.Map_Control.Modal.MapModal

澄清我在做什么。我正在尝试构建 wpf 应用程序并使用 bing 地图。我正在关注此链接中的代码。,但我没有使用 Silverlight,而是在 VB 中编码。

4

3 回答 3

5

尝试这样的事情:

MapRecords.Add(New MapModal() With {.Location = New WPF.Location(47, -122), .TooltipTex = "Sample tooltiptext!"})
于 2013-06-05T15:17:11.413 回答
1

VB.Net 中的对象初始化器语法不同 - 我使用了在线翻译器并得到了这个:

Imports System.Collections.ObjectModel
Imports Microsoft.Maps.MapControl

Namespace Binding_Bing_Map_Control.Modal
    Public Class MapModal

        Public Property Location As Location
        Public Property TooltipTex As String

        Public Shared Function getMapRecords() As ObservableCollection(Of MapModal)
            Dim MapRecords As New ObservableCollection(Of MapModal)()
            MapRecords.Add(New MapModal() With { _
                Key .MapLocation = New Location(47.610015, -122.188362), _
                Key .TooltipText = "Main St, Bellevue, WA 98004" _
            })
            MapRecords.Add(New MapModal() With { _
                Key .MapLocation = New Location(47.603562, -122.329496), _
                Key .TooltipText = "James St, Seattle, wa 98104" _
            })
            MapRecords.Add(New MapModal() With { _
                Key .MapLocation = New Location(47.609355, -122.18997), _
                Key .TooltipText = "Main St, Bellevue, WA 98004-6405" _
            })
            MapRecords.Add(New MapModal() With { _
                Key .MapLocation = New Location(47.61582, -122.238973), _
                Key .TooltipText = "601 76th Ave, Medina ,WA 98039" _
            })
            Return MapRecords
        End Function
    End Class
End Namespace
于 2013-06-05T15:17:08.593 回答
1

我认为问题出在这里:

public Location MapLocation { get; set; }

此行无法翻译为

Public Property Location As WPF.Location

我认为你在搞乱 Location 类。请注意,在 C# 版本中没有对 WPF 命名空间的这种引用。

于 2013-06-05T15:16:15.683 回答