Ok,
Getting closer to having the grid beaten into shape. Just two more things to solve. In this post, let's deal with detecting the change of an underlying data record.
The grid is clearly NOTICING the record data changes, as they are reflected in real time. If I change the data via my detail window, the grid column updates instantly and automatically. However, the grouping is not re-evaluated, so if the change would place the row in a different group it does not move.
I need to detect the data change, and then re-group the grid so that this change happens. However neither SourceUpdated() or DataContextChanged() fire – so I am clearly looking in the wrong places :)
Any hints?
Ken
internal void BuildReportObjectCollection()
{
List<ReportObjectEntity> reportObjectCollection =
Presenter.buildReportObjectCollection();
SingleObjectList.DataContext = reportObjectCollection;
}
//Use the list of Guids to filter my collection using
//the predicate here
public void Show(List<Guid> reportObjectList)
{
selectdReportObjectCollection = reportObjectList;
if (selectdReportObjectCollection != null)
{
if (SingleObjectList.ItemsSource != null)
{
// filter
collectionView =
CollectionViewSource.GetDefaultView(SingleObjectList.DataContext);
collectionView.Filter =
new Predicate<object>(FilterForSelectedReportObjectList);
}
}
}
public
bool FilterForSelectedReportObjectList(object item)
{
ReportObjectEntity reportObject = item as ReportObjectEntity;
if (reportObject != null && this.selectdReportObjectCollection.Contains(reportObject.ReportObjectID))
{
return true;
}
else
{
return false;
}
}
//The XAML is pretty standard for the GridView, ItemsSource = {Binding}
Does anyone know what is the issue here?
Thanks,