I am using the following code to show hyperlink buttons in a FeatuerDataGrid. This code works fine, except in the case that only one feature is selected, in which case the datatemplate is not applied. Does anyone have any suggestions to get this working?
private void featureDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
if (!_hasFixedColumns)
{
FeatureDataGrid fdg = sender as FeatureDataGrid;
Dictionary<int, DataGridColumn> newFeatureDataGridColumns = new Dictionary<int, DataGridColumn>();
if (_urlColumns.Count > 0)
{
foreach (DataGridColumn column in fdg.Columns)
{
DataGridTemplateColumn newColumn = new DataGridTemplateColumn();
if (column.Header != null && _urlColumns.ContainsKey(column.Header.ToString()))
{
newColumn.CellTemplate = getColumnDataTemplate(_urlColumns[column.Header.ToString()]);
newColumn.Header = column.Header;
newFeatureDataGridColumns.Add(column.DisplayIndex, newColumn);
}
else if (column.Header != null && _fdgColumns.ContainsKey(column.Header.ToString()))
{
newColumn.Header = column.Header;
newColumn.Width = new DataGridLength(4, DataGridLengthUnitType.Auto);
newFeatureDataGridColumns.Add(column.DisplayIndex, column);
}
}
}
if (newFeatureDataGridColumns.Count > 0)
{
foreach (KeyValuePair<int, DataGridColumn> Item in newFeatureDataGridColumns)
{
fdg.Columns.RemoveAt(Item.Key);
fdg.Columns.Insert(Item.Key, Item.Value);
}
}
}
}