private void OnParentCurrencyManagerChanged (object sender, EventArgs args)
{
// Essentially handles chained data sources (e.g. chained BindingSource)
+ ResetDataMemberIfInvalid ();
ResetList ();
}
DisconnectDataSourceEvents (datasource);
datasource = value;
+ ResetDataMemberIfInvalid ();
ConnectDataSourceEvents (datasource);
ResetList ();
}
}
+ void ResetDataMemberIfInvalid ()
+ {
+ if (datamember == String.Empty)
+ return;
+
+ // if dataMember doesn't refer to a valid property of dataSource, we need to reset it
+ var property = ListBindingHelper.GetListItemProperties (datasource).Find (datamember, true);
+ if (property == null) {
+ datamember = String.Empty;
+ OnDataMemberChanged (EventArgs.Empty);
+ }
+ }
+
// NOTE: Probably the parsing can be improved
void ProcessSortString (string sort)
{