var col = new GridViewDataColumn
{
DataMemberBinding = new Binding(column.Name), Header = column.Header, ToolTip = new Binding(column.Description)
};<telerik:RadGridView x:Name="dgvResults" AutoGenerateColumns="False" CanUserDeleteRows="False" SelectionMode="Extended" IsReadOnly="True" ShowGroupPanel="False" CanUserFreezeColumns="False" IsFilteringAllowed="True" RowIndicatorVisibility="Collapsed" ScrollMode="Deferred" EnableRowVirtualization="True" EnableColumnVirtualization="True" ColumnWidth="170">..............</telerik:RadGridView>
<telerik:RadCarousel Name="myCarousel" HorizontalContentAlignment="Stretch" VerticalAlignment="Top" VerticalContentAlignment="Center" Height="43" Padding="0" IsSynchronizedWithCurrentItem="True" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden" Background="{x:Null}" Margin="25,0,2,0" PreviewMouseDown="effectiveDateCarousel_PreviewMouseDown" PreviewKeyDown="effectiveDateCarousel_PreviewKeyDown" PreviewMouseWheel="effectiveDateCarousel_PreviewMouseWheel"> <telerik:RadCarousel.ItemsPanel> <ItemsPanelTemplate> <telerik:RadCarouselPanel HorizontalAlignment="Stretch" VerticalAlignment="Center" Path="{StaticResource path}" IsSelectedTopItem="True" /> </ItemsPanelTemplate>
</telerik:RadCarousel.ItemsPanel></telerik:RadCarousel>RadCarouselPanel panel = myCarousel.FindCarouselPanel();panel.ItemsPerPage = 7;class MaxEnumFlagsDescriptor : FilterDescriptor
{
private FilterDescriptor<MaintenanceBoxDataDataTableRow> Filter;
private string dataMember;
/// <summary>
/// Initializes a new instance of the <see cref="MaxEnumFlagsDescriptor"/> class.
/// </summary>
/// <param name="control">The column.</param>
/// <param name="dataMember">The data member.</param>
/// <param name="enumType">Type of the enum.</param>
public MaxEnumFlagsDescriptor(MaxFilteringControl control, string dataMember, Type enumType)
{
if (dataMember.StartsWith("["))
dataMember = dataMember.RemoveFromStart(1).RemoveFromEnd(1);
this.Control = control;
this.Column = control.GridColumn as GridViewBoundColumnBase;
this.dataMember = dataMember;
this.EnumType = enumType;
Filter = new FilterDescriptor<MaintenanceBoxDataDataTableRow>();
Filter.FilteringExpression = (e) => (Check(e));
}
/// <summary>
/// Creates the filter expression.
/// </summary>
/// <param name="instance">The instance.</param>
/// <returns></returns>
public override System.Linq.Expressions.Expression CreateFilterExpression(System.Linq.Expressions.Expression instance)
{
return Filter.CreateFilterExpression(instance);
}
private bool Check(DataRow row)
{
if (this.DistinctValue == null || !this.Control.IsActive)
return true;
var desc = this.DistinctValue; // this was available in the ColumnFilterDescriptor. originaly
// in the class (so how to get it..)
// HOW TO GET THE CHECKED VALUES OF THE DISTINCT VALUE LIST
if (!desc.Any())
return true;
Debug.Assert(row != null, "Should have found a Row");
if (row != null)
{
var inf = row[this.dataMember];
if (inf == DBNull.Value)
inf = null;
if (inf == null)
return desc.Any(c => c == null);
else
{
var enumType = this.EnumType;
try
{
var val = Enum.ToObject(enumType, inf).ToString();
return desc.Any(c => IsInclude(c, val, enumType));
}
catch (System.Exception ex)
{
// In case of old value
Debug.Fail(ex.Message);
return false;
}
}
}
return true;
}
private static bool IsInclude(object value, string data, Type enumType)
{
var val = Enum.ToObject(enumType, value).ToString();
return data.IndexOf(val) >= 0;
}
}
<code>CanUserFreezeColumns="False" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False" IsReadOnly="True" ScrollMode="Deferred" telerik:StyleManager.Theme="Metro" FontSize="11" ShowGroupPanel="False" RowHeight="18" Grid.Row="1" Width="1320" MaxWidth="1320" MinHeight="800" MaxHeight="1000"</code>