var result = this.BuildingBO.GetByAddress(addressPk); this.BindBuilding(result); this.grdBuilding.DataSource = result; if (result.Rows.Count > 0) this.HighlightRow(this.grdBuilding, 0);BindBuilding does my data binding:
this.txtBuilding.DataBindings.Clear(); this.txtBuilding.DataBindings.Add("Text", table, "cBuildingName"); // Just store it off it make it easy to access and don't have to do it through DataContext. this.m_buildingCurrencyMgr = (CurrencyManager)this.BindingContext[table]; this.m_buildingCurrencyMgr.Position = 0;This all appears to work, except under a few scenarios:
// Left out code which grabs the DataTable reference var buildingRowCount = buildingTable.Rows.Count; var row = buildingTable.NewBuildingRow(); row.cAddressFk = addressRow.cAddressPk; row.cBuildingPk = Guid.NewGuid(); buildingTable.AddBuildingRow(row); this.m_buildingCurrencyMgr.Position = buildingRowCount; this.m_buildingCurrencyMgr.Refresh();I'm sure I'm missing something simple here.