当我刷新我的集合时,SortDescription不工作。这是我在互联网上读到的wpf的一个已知bug。
我的经验看起来并没有那么远:-)有人能帮我吗,告诉我如何重新排序我的数据网格……
xaml:
<XmlDataProvider x:Key="SmsData" XPath="/response/conv/sms" >
</XmlDataProvider>
<local:RowColorConverter x:Key="RowColorConverter" />
<CollectionViewSource x:Key="SmsView" Source="{StaticResource SmsData}" >
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="date" Direction="Descending" />
<scm:SortDescription PropertyName="time" Direction="Descending" />
</CollectionViewSource.SortDescriptions>
<CollectionViewSource.GroupDescriptions>
<dat:PropertyGroupDescription PropertyName="recipient" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
...
<DataGrid ItemsSource="{Binding}" DataContext="{StaticResource SmsView}" Name="dataGrid1">
...政务司司长:
public void makeConnection()
{
...
XmlDocument doc = new XmlDocument();
doc.Load(readStream);
//refreshing my data
xdp = FindResource("SmsData") as XmlDataProvider;
xdp.Document = doc;
//re-sort => this not working
if (dataGrid1.ItemsSource != null)
{
CollectionViewSource cvs = FindResource("SmsView") as CollectionViewSource;
cvs.GroupDescriptions.Clear();
cvs.GroupDescriptions.Add(new PropertyGroupDescription("recipient"));
cvs.SortDescriptions.Clear();
cvs.SortDescriptions.Add(new SortDescription("date",ListSortDirection.Descending));
cvs.SortDescriptions.Add(new SortDescription("time",ListSortDirection.Descending));
cvs.View.Refresh();
}
}发布于 2012-12-31 21:06:01
在您的C#代码中,创建一个ListCollectionView并用该文档填充它。将ListCollectionView设置为公共,并为其提供get和set访问器,然后将DataGrid绑定到ItemsSource="{Binding SmsListCollectionView}“。一旦我使用了CollectionViewSource,GetDefaultView方法返回了一个不可排序的视图。我把所有的东西都换成了ListCollectionView,从那以后我就再也没有问题了。
关于更新,我想你没问题,see this SO question and its solution.
https://stackoverflow.com/questions/14094706
复制相似问题