I formatted and corrected the code:
<telerik:RadGridView x:Name="RadGridView1" Margin="10,12,10,0"
RowIndicatorVisibility="Collapsed" CanUserFreezeColumns="False"
ItemsSource="{Binding Path=Data}" Foreground="Black" Width="864" />
Here Data is observableCollection<MyDataRow> in Viewmodel
private ObservableCollection<MyDataRow> _data;
public ObservableCollection<MyDataRow> Data
{
get {return _data;}
set{_exceldata = value;
RaisePropertyChanged("Data");
}
}
I am getting the Grid data using
Data = GetGridData(UploadProcessData,UploadTypeId);
private ObservableCollection<MyDataRow> GetGridData(List<UploadDetail> lst)
{
var data = new ObservableCollection<MyDataRow>();
var string1 = "Company";
var string2 = "ChannelID";
foreach (UploadDetail memberInfo in lst)
{
MyDataRow row = new MyDataRow();
row[string1] = memberInfo.Col_1;
row[string2] = memberInfo.Col_2;
data.Add(row);
}
return data;
}
MyDatarow Class:
public class MyDataRow : DynamicObject, INotifyPropertyChanged
{
IDictionary<string, object> data;
public MyDataRow()
{
data =
new Dictionary<string, object>();
}
public MyDataRow(IDictionary<string, object> source)
{
data = source;
}
public override IEnumerable<string> GetDynamicMemberNames()
{
return data.Keys;
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result =
this[binder.Name];
return true;
}
public override bool TrySetMember(SetMemberBinder binder, object value)
{
this[binder.Name] = value;
return true;
}
public object this[string columnName]
{
get
{
if (data.ContainsKey(columnName))
{
return data[columnName];
}
return null;
}
set
{
if (!data.ContainsKey(columnName))
{
data.Add(columnName,
value);
OnPropertyChanged(columnName);
}
else
{
if (data[columnName] != value)
{
data[columnName] =
value;
OnPropertyChanged(columnName);
}
}
}
}
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(
this, new PropertyChangedEventArgs(propertyName));
}
}
#region
INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}