Private Sub QueryTask_ExecuteCompletedBuffer2(ByVal sender As Object, ByVal args As QueryEventArgs)
      ' Set up the collection View Source in order to Sort the results of the query by DISTANCE       
                Dim cs As New CollectionViewSource
                cs.SortDescriptions.Add(New SortDescription("BUFFER_DISTANCE", ListSortDirection.Ascending)) 
                cs.Source = args.FeatureSet.Features        
     ' Apply the sort to the listbox       
                imageListBuffer.ItemsSource = cs.View        
     ' refresh the listbox        
                cs.View.Refresh()
        Dim featureSet As FeatureSet = args.FeatureSet
        imageListBuffer.ItemsSource = args.FeatureSet.Features
        ' Set the Buffer Variable for the Center Point of the buffer to a MAPPOINT not String to the variable being set 
        ' in the GeometryService_BufferCompleted2...the Variable is globally define at the to of the code page
        Dim _XYLocationBuffer As MapPoint = Nothing
        _XYLocationBuffer = _XYLocation
        If args.FeatureSet.Features.Count < 1 Then
            MessageBox.Show("No features found")
            Return
        End If
        For Each selectedGraphic As Graphic In args.FeatureSet.Features
            selectedGraphic.Symbol = TryCast(LayoutRoot.Resources("DefaultMarkerSymbol"), ESRI.ArcGIS.Client.Symbols.Symbol)
            _resultsGraphicsLayer.Graphics.Add(selectedGraphic)
            ' Get the center point of each selected graphic found in the buffer
            Dim c As ESRI.ArcGIS.Client.Geometry.MapPoint = selectedGraphic.Geometry.Extent.GetCenter()
            ' Call the GetDistance Function...Set the Distance to the BUFFER_DISTANCE variable for each graphic, for display in the listbox            
             selectedGraphic.Attributes("BUFFER_DISTANCE") = GetDistance(_XYLocationBuffer, c)
       
 Next selectedGraphic
    End SubFor me, I think Linq query might be the easiest solution. Once you have calculated and added the Distance, you can order by this attribute. You can then set ListBox ItemSource with the sortedGraphics.var sortedGraphics = from g in graphicsLayer.Graphics orderby (double)g.Attributes["Distance"] ascending select g;
Dim sortedGraphics = From g In args.FeatureSet.Features Order By CDbl(g.Attributes("Distance")) Ascending
imageListBuffer.ItemsSource = sortedGraphics 
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		        Dim sortedGraphics = From g In args.FeatureSet.Features Order By CDbl(g.Attributes("Distance")) Ascending        Dim sortedGraphics = From g In args.FeatureSet.Features Order By CDbl(g.Attributes("Distance")) Descending        'Dim sortedGraphics = From g In args.FeatureSet.Features Order By (g.Attributes("NAME")) Ascending
        'Dim sortedGraphics = From g In args.FeatureSet.Features Order By (g.Attributes("NAME")) Descending        Dim sortedGraphics = From g In args.FeatureSet.Features Order By CDbl(g.Attributes("DISTANCE")) Ascending       
        Dim sortedGraphics = From g In args.FeatureSet.Features Order By CDbl(g.Attributes("DISTANCE")) Descending 
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		
private void GraphicsLayer_Initialized(object sender, EventArgs e)
{
 GraphicsLayer l = sender as GraphicsLayer;
 Graphic gr = new Graphic();
 gr.Attributes["Distance"] = 2.3;
 l.Graphics.Add(gr);
 gr = new Graphic();
 gr.Attributes["Distance"] = 4.0;
 l.Graphics.Add(gr);
 gr = new Graphic();
 gr.Attributes["Distance"] = 2.3;
 l.Graphics.Add(gr);
 gr = new Graphic();
 gr.Attributes["Distance"] = 3.2;
 l.Graphics.Add(gr);
 gr = new Graphic();
 gr.Attributes["Distance"] = 1.0;
 l.Graphics.Add(gr);
 var sortedGraphics = from g in l.Graphics
   orderby (double) g.Attributes["Distance"] ascending
   select g;
 myList.ItemsSource = sortedGraphics;
}
<ListBox x:Name="myList" VerticalAlignment="Top" HorizontalAlignment="Center" >
 <ListBox.ItemTemplate>
  <DataTemplate>
   <TextBlock Text="{Binding Attributes[Distance]}"/>
  </DataTemplate>
 </ListBox.ItemTemplate>
</ListBox>
        Dim featureSet As FeatureSet = args.FeatureSet
' CODE WAS HERE        
        Dim _XYLocationBuffer As MapPoint = Nothing
        _XYLocationBuffer = _XYLocation
        If args.FeatureSet.Features.Count < 1 Then
            MessageBox.Show("No features found")
            Return
            End If
        For Each selectedGraphic As Graphic In args.FeatureSet.Features
                'selectedGraphic.Symbol = TryCast(LayoutRoot.Resources("DefaultMarkerSymbol"), ESRI.ArcGIS.Client.Symbols.Symbol)
            selectedGraphic.Symbol = TryCast(LayoutRoot.Resources("StrobeMarkerSymbol_Blue"), ESRI.ArcGIS.Client.Symbols.Symbol)
            _resultsGraphicsLayer.Graphics.Add(selectedGraphic)
                'graphicsLayer.Graphics.Add(selectedGraphic)
                ' Get the center point of each selected graphic found in the buffer
            Dim c As ESRI.ArcGIS.Client.Geometry.MapPoint = selectedGraphic.Geometry.Extent.GetCenter()
                ' Call the GetDistance Function...Set the Distance to the BUFFER_DISTANCE variable for each graphic, for display in the listbox
            selectedGraphic.Attributes("DISTANCE") = GetDistance(_XYLocationBuffer, c)
        Next selectedGraphic
' NOW HERE        
       Dim sortedGraphics = From g In args.FeatureSet.Features Order By CDbl(g.Attributes("DISTANCE")) Ascending
        imageListBuffer.ItemsSource = sortedGraphics