The below works Ok for my purposes since I at least do not have to individually set every such property but strongly feel user data should NOT be changed by default. I made the suggestion to the DevExpress folks that there should be easier ways to override this behavior at field, grid and global levels. Here is my interim solution:
settings.DataBound = (sender, e) =>
{
// turn off brain dead conversion of user data empty strings to null
var lGrid = sender as MVCxGridView;
foreach (var lCol in lGrid.Columns)
{
if (lCol is GridViewDataColumn)
{
GridViewDataColumn lDataCol = lCol as GridViewDataColumn;
TextBoxProperties tb = lDataCol.PropertiesEdit as TextBoxProperties;
if (tb != null)
tb.ConvertEmptyStringToNull = false;
}
}
};