i need some help on one line with translating this code:

Original in 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;
    }
}
}

My translation to 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

I get error in line:

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

Error: Value of type Boolean cannot be converted to WindowsApplication1.Map_Control.Modal.MapModal

To clarify what am I doing. I am trying to build wpf application and use bing maps. I am following code from this link., but i am not using Silverlight and i am coding in VB.

有帮助吗?

解决方案

Try something like this:

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

其他提示

I think the problem is here:

public Location MapLocation { get; set; }

This line can't be translated to

Public Property Location As WPF.Location

I think you're messing with Location class. Notice that there is not such a reference to WPF namespace in the C# version.

The object initialiazer syntax is different in VB.Net - I used an online translator and got this:

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top