private void BuildProxyRows()
{
// Is there a change to the row definitions?
if (_rows.IsDirty)
{
// Do we need to recreate the proxy array?
if ((_proxyRows == null) || (_proxyRows.Length != _rows.Count))
{
// Always need at least one row
_proxyRows = new DefinitionProxy[Math.Max(1, _rows.Count)];
}
// Hook each row into the matching proxy
for (int i = 0; i < _rows.Count; i++)
_proxyRows[i] = new DefinitionProxy(_rows[i]);
// Our artifical row needs to point at a real row definition
if (_columns.Count == 0)
_proxyRows[0] = new DefinitionProxy(new RowDefinition());
}
}