In the scenario below one should be able to access the defined UserData value in the SearchCompleted event handler How to reproduce: protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.radMap1.ShowSearchBar = true; BingRestMapProvider bingProvider = this.radMap1.Providers[0] as BingRestMapProvider; this.radMap1.MapElement.SearchBarElement.SearchProvider = bingProvider; this.radMap1.MapElement.SearchBarElement.SearchProvider.SearchCompleted += BingProvider_SearchCompleted; } private void BingProvider_SearchCompleted(object sender, SearchCompletedEventArgs e) { Telerik.WinControls.UI.Map.RectangleG allPoints = new Telerik.WinControls.UI.Map.RectangleG(double.MinValue, double.MaxValue, double.MaxValue, double.MinValue); this.radMap1.Layers["Pins"].Clear(); foreach (Telerik.WinControls.UI.Map.Bing.Location location in e.Locations) { Telerik.WinControls.UI.Map.PointG point = new Telerik.WinControls.UI.Map.PointG(location.Point.Coordinates[0], location.Point.Coordinates[1]); MapPin pin = new MapPin(point); pin.Size = new System.Drawing.Size(20, 40); pin.BackColor = Color.Red; pin.ToolTipText = location.Address.FormattedAddress; this.radMap1.MapElement.Layers["Pins"].Add(pin); allPoints.North = Math.Max(allPoints.North, point.Latitude); allPoints.South = Math.Min(allPoints.South, point.Latitude); allPoints.West = Math.Min(allPoints.West, point.Longitude); allPoints.East = Math.Max(allPoints.East, point.Longitude); } if (e.Locations.Length > 0) { if (e.Locations.Length == 1) { this.radMap1.BringIntoView(new Telerik.WinControls.UI.Map.PointG(e.Locations[0].Point.Coordinates[0], e.Locations[0].Point.Coordinates[1])); } else { this.radMap1.MapElement.BringIntoView(allPoints); this.radMap1.Zoom(this.radMap1.MapElement.ZoomLevel - 1); } } else { RadMessageBox.Show("No result found for the provided search query!"); } } Telerik.WinControls.UI.Map.Bing.SearchRequest request; private void radButton1_Click(object sender, EventArgs e) { Telerik.WinControls.UI.MapLayer pinsLayer = new MapLayer("Pins"); this.radMap1.Layers.Add(pinsLayer); request = new SearchRequest(); request.Query = "San Marino"; request.SearchOptions.Count = 10; request.SearchOptions.QueryParse = true; request.UserData = "Tooltip"; BingRestMapProvider bingProvider = this.radMap1.Providers[0] as BingRestMapProvider; bingProvider.SearchAsync(request); } Workaround: if possible cache the data to be accessed at a later stage