Hello,
we have a RadGridView which we define in a .xaml file. To this grid we add a few dynamic columns via a Behavior. Our Problem now is, that the columns we defined in the .xaml-file can be filtered normaly, but the dynamicaly added columns are missing the filter icon in the column header. We tried adding a new Instance of the FilterControl which shows the filter icon, but the FilterControl does not do anything and is missing the Search Textboxes.
Can you guide us advice on what we need to do to get the filter working for those columns?
Here is the code of the Behavior we use to add the dynamic columns:
public class RadGridViewAddCustomFieldDefinitionColumnsBehavior : RadGridViewAddFieldDefinitionColumnsBehavior<CustomFieldDefinition>
{
protected override void AddFieldsColumns(
IEnumerable<CustomFieldDefinition> fieldDefinitions,
GridViewDataControl radGridView,
RadGridViewAddFieldDefinitionColumnsBehavior<CustomFieldDefinition> radGridViewAddFieldColumnsBehavior)
{
var corporationIDToNameConverter = new CorporationIDToNameConverter();
var contactIDToNameConverter = new ContactIDToNameConverter();
foreach (var customFieldDefinition in fieldDefinitions)
{
var column = new GridViewDataColumn
{
Header = customFieldDefinition.PropertyName,
UniqueName = customFieldDefinition.PropertyName,
DataMemberBinding = new Binding("CustomFields")
{
Converter = new ValueConverterChain
{
optionalDictionaryValueConverter,
},
ConverterParameter = new ValueConverterChainParameters
{
customFieldDefinition.ID,
},
},
};
switch (customFieldDefinition.FieldType)
{
case FieldType.Corporation:
SetColumnValueConverter(column, customFieldDefinition, corporationIDToNameConverter);
break;
case FieldType.Contact:
SetColumnValueConverter(column, customFieldDefinition, contactIDToNameConverter);
break;
}
CurrentFieldDefinitionColumns.Add(column);
radGridView.Columns.Add(column);
}
}
protected override void SetColumnValueConverter(
GridViewDataColumn column,
CustomFieldDefinition fieldDefinition,
IValueConverter valueConverter)
{
var converterChain = (ValueConverterChain)column.DataMemberBinding.Converter;
var valueConverterChainParameters = (ValueConverterChainParameters)column.DataMemberBinding.ConverterParameter;
converterChain.Add(valueConverter);
valueConverterChainParameters.Add(fieldDefinition.Values);
}
}
Kind regards
Benny