【发布时间】:2011-12-15 19:20:10
【问题描述】:
XAML RadGrid
<telerik:RadGridView d:DataContext="{d:DesignInstance {x:Type local:A}}" Name="myGridView" Grid.Column="2" ItemsSource="{Binding Path=MyList}" Margin="7,7,7,2" IsFilteringAllowed="False" ShowColumnHeaders="True" AutoGenerateColumns="True" />
C#代码
Class A:INotifyPropertyChanged
{
private List<Fields> MyList;
public event PropertyChangedEventHandler PropertyChanged;
public List<Fields> _theList
{
get
{
if (MyList == null)
{
MyList = new List<Fields>();
}
return MyList;
}
set
{
if (MyList != value)
{
MyList = value;
PropertyChanged(this, new PropertyChangedEventArgs("_theList"));
}
}
}
}
当 MyList 中的项目动态变化时,radgridview 不会自动更新,如果我在代码中重置 Itemssource 就可以了:
mygridview.Itemssource = Null;
mygridview.Itemssource = MyList;
在 MyList 更改后,我每次都必须在代码中重置 itemssource。为什么当 MyList 的内容发生变化时 GridView 不会自动更新? 此外,在设计期间,它向我显示了适当的列标题,列中没有数据,因为列表是空的。但是当我运行应用程序时,列标题消失,并且当 MyList 的内容动态变化时,radgrid 中没有数据显示。
【问题讨论】:
标签: list binding inotifypropertychanged radgrid