using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Linq;using System.Text;using System.Threading;using Telerik.Windows.Controls;namespace HighlightMatchingItemsText{ public class Country { public string Name { get; set; } public string Capital { get; set; } } public class ViewModel : ViewModelBase { private ObservableCollection<Country> countries; public ViewModel() { this.Countries = new ObservableCollection<Country>() { new Country() { Name = "Australia", Capital = "Canberra" }, new Country() { Name = "Bulgaria", Capital = "Sofia" }, new Country() { Name = "Canada", Capital = "Ottawa" }, new Country() { Name = "Denmark", Capital = "Copenhagen" }, new Country() { Name = "France", Capital = "Paris" }, new Country() { Name = "Germany", Capital = "Berlin" }, new Country() { Name = "India", Capital = "New Delhi" }, new Country() { Name = "Italy", Capital = "Rome" }, new Country() { Name = "Norway", Capital = "Oslo" }, new Country() { Name = "Russia", Capital = "Moscow" }, new Country() { Name = "Spain", Capital = "Madrid" }, new Country() { Name = "United Kingdom", Capital = "London" }, new Country() { Name = "United States", Capital = "Washington, D.C." }, }; var o = System.Reactive.Linq.Observable.Start(() => { //starts on a background thread. while (true) { Thread.Sleep(6000); this.Countries = new ObservableCollection<Country>() { new Country() { Name = "Australia", Capital = "Canberra" }, new Country() { Name = "Bulgaria", Capital = "Sofia" }, new Country() { Name = "Canada", Capital = "Ottawa" }, new Country() { Name = "Denmark", Capital = "Copenhagen" }, }; Console.WriteLine("Collection Changed"); } }); } public ObservableCollection<Country> Countries { get { return this.countries; } set { if (this.countries != value) { this.countries = value; this.OnPropertyChanged(() => this.Countries); } } } }}<UserControl x:Class="HighlightMatchingItemsText.Example" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:local="clr-namespace:HighlightMatchingItemsText" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300" Width="300"> <UserControl.DataContext> <local:ViewModel /> </UserControl.DataContext> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Type A in the autocomplete box, Australia gets highlighted. Keep the drop down open and wait for 6 seconds, the collection changes and the highlighting dissappears. Wait for another 6 seconds, the collection changes and the highlighting reappaers. This keeps toggling. " TextWrapping="Wrap" FontWeight="Bold" Margin="20"/> <telerik:RadAutoCompleteBox x:Name="AutoComplete" Grid.Row="1" Margin="20" ItemsSource="{Binding Countries}" TextSearchPath="Name" TextSearchMode="Contains" AutoCompleteMode="Suggest" > </telerik:RadAutoCompleteBox> </Grid></UserControl>
AjaxControlToolkit.ToolkitScriptManager.RegisterClientScriptBlock(this, typeof(string), this._TbName.ClientID, "NameSearch('" + this._TbName.ClientID +"');", true);
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="input.aspx.vb" Inherits="TestaTredjepartWeb.input" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="s" runat="server"> </asp:ScriptManager> <div> <telerik:RadNumericTextBox ID="aa" runat="server" Value="10000000"> </telerik:RadNumericTextBox><br /><br /> <asp:Button ID="btnSetFocus" runat="server" Text="Set Focus" OnClientClick="$find('aa').focus(); return false;" /> </div> </form></body></html>

Everything I've described so far works perfectly. So here's where the trouble begins.
When it comes time to persist data back to the DB, in my ItemCommand for the RadGrid which receives the "Save" (from e.CommandName), I have a call to GridEditableItem.ExtractValues. This call to ExtractValues finds and pulls data for every other column (which is in edit mode at any rate), except for my GridTemplateColumn! As described above, this is the column where I am dynamically instantiating and adding a control.
If I perform the instantiation and addition earlier as a test (e.g. Page_Init), then of course the control is found - but my condition which is based on data is not yet available. In other words, even though I would love to build the grid programmatically in Page_Init, I can't do so because I don't know what kind of control I need to instantiate that early!
Ideas please? Regards,
Allen