WPF VB.Net Tutorial

    x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:system="clr-namespace:System;assembly=mscorlib"
  xmlns:WpfApplication1="clr-namespace:WpfApplication1"
    Title="WPF"  Width="240" Height="150" >
    
        
                    ObjectType="{x:Type WpfApplication1:DistanceConverter }"
            MethodName="Convert" >
            
                0
                Miles
            

        
    

    
        
                            Path=MethodParameters[0],BindsDirectlyToSource=true,UpdateSourceTrigger=PropertyChanged,
                    Converter={StaticResource doubleToString}}"/>
        
                    SelectedValue="{Binding Source={StaticResource convertDistance},Path=MethodParameters[1], 
                            BindsDirectlyToSource=true}" >
            Miles
            Kilometres
        
        
        
    


//File:Window.xaml.vb
Imports System
Imports System.Windows.Data
Namespace WpfApplication1
  Public Class DoubleToString
    Implements IValueConverter
    Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert
      If value IsNot Nothing Then
        Return value.ToString()
      End If
      Return Nothing
    End Function
    Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
      Dim strValue As String = TryCast(value, String)
      If strValue IsNot Nothing Then
        Dim result As Double
        Dim converted As Boolean = [Double].TryParse(strValue, result)
        If converted Then
          Return result
        End If
      End If
      Return Nothing
    End Function
  End Class
  Public Enum DistanceType
    Miles
    Kilometres
  End Enum
  Public Class DistanceConverter
    Public Function Convert(amount As Double, distancetype__1 As DistanceType) As String
      If distancetype__1 = DistanceType.Miles Then
        Return (amount * 1.6).ToString("0.##") & " km"
      End If
      If distancetype__1 = DistanceType.Kilometres Then
        Return (amount * 0.6).ToString("0.##") & " m"
      End If
      Throw New ArgumentOutOfRangeException("distanceType")
    End Function
  End Class
End Namespace