or
| // Binding to be set for control |
| Binding binding = new Binding("Value"); |
| binding.Mode = BindingMode.TwoWay; |
| binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; |
| string datePickerXamlTemplate = "<telerik:RadDatePicker x:Name=\"uxDatePickerCustomField{0}\" Grid.Row=\"1\" Grid.Column=\"1\" Height=\"24\" HorizontalAlignment=\"Left\" Margin=\"8,5,8,5\" Width=\"125\" xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:telerik=\"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Input\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" />"; |
| string datePickerXaml = string.Format(datePickerXamlTemplate, field.Id, count); |
| stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(datePickerXaml)); |
| RadDatePicker datePicker = (RadDatePicker)System.Windows.Markup.XamlReader.Load(stream); |
| datePicker.SetBinding(RadDatePicker.SelectedDateProperty, binding); |
| datePicker.Style = (Style)FindResource("DatePickerStyle"); |
| datePicker.DataContext = field; // Object having properties - Value and IsValidFieldValue. Implements INotifyPropertyChanged |
| uxGrid.Children.Add(datePicker); // Added to a Grid |
| <UserControl.Resources> |
| <Style TargetType="{x:Type telerikInput:RadDatePicker}" x:Key="DatePickerStyle"> |
| <Style.Triggers> |
| <DataTrigger Binding="{Binding Path=IsValidFieldValue, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Value="false"> |
| <Setter Property="telerikInput:RadDatePicker.Background" Value="#FFFFB9B9" /> |
| </DataTrigger> |
| </Style.Triggers> |
| </Style> |
| </UserControl.Resources> |
| public class DummyObject |
| { |
| public DummyObject(string name, string notes) |
| { |
| Name = name; |
| Notes = notes; |
| } |
| public string Name |
| { |
| get; |
| set; |
| } |
| public string Notes |
| { |
| get; |
| set; |
| } |
| } |
| public partial class Window1 : Window |
| { |
| public Window1() |
| { |
| InitializeComponent(); |
| //This works fine |
| //PopulateGrid(); |
| } |
| private void Populate_Click(object sender, RoutedEventArgs e) |
| { |
| //This will throw an exception |
| PopulateGrid(); |
| } |
| private void PopulateGrid() |
| { |
| List<DummyObject> myObjects = new List<DummyObject>() |
| { |
| new DummyObject("Justin", "Here is a note"), |
| new DummyObject("Paul", "Paul has a note too"), |
| new DummyObject("Sam", "Sam has a note that is much longer than the other notes"), |
| new DummyObject("Dean", "Nothing to see here"), |
| new DummyObject("Andrew", "Blah blah blah blah") |
| }; |
| mainGrid.DataContext = myObjects; |
| } |
| } |
| <Window x:Class="TeleirkDatagridBug.Window1" |
| xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" |
| Title="Window1" Height="300" Width="300"> |
| <DockPanel> |
| <StackPanel DockPanel.Dock="Top"> |
| <Button Content="Populate" Click="Populate_Click"/> |
| </StackPanel> |
| <telerik:RadGridView AutoGenerateColumns="False" x:Name="mainGrid" ItemsSource="{Binding}"> |
| <telerik:RadGridView.Columns> |
| <telerik:GridViewDataColumn Width="100" HeaderText="Name" UniqueName="Name"/> |
| <telerik:GridViewDataColumn Width="*" HeaderText="Notes" UniqueName="Notes"/> |
| </telerik:RadGridView.Columns> |
| </telerik:RadGridView> |
| </DockPanel> |
| </Window> |
| public class SomeObject |
| { |
| public Field SelectedField { get; set; } public string SelectedString { get; set; } |
| } |
| public class Field |
| { |
| public string[] ListOfAllowedItems; |
| } |

public
object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// If the Lastname field in my datarow begins with "A" - then display an A ICON......
if (((Telerik.Windows.Data.DataRecord)value).Data.ToString()=="A")
{
return "A.jpg";
}
return String.Format("{0}.jpg", ((Telerik.Windows.Data.DataRecord)value).Data);
}