Hi,
I am using RadScheduleView for Calendar type implementation.
I implemented filter that works fine for all ViewDefinitions except the ViewDefinition which is first on the NavigationHeader or in other words the ViewDefinition at Index=0 is not performing Filter.
Example:-
Below is the definition of RadSchedulerView that I am using.
<telerik:RadScheduleView Name="xRadScheduleView" AppointmentsSource="{Binding Appointments}" ResourceTypesSource="{Binding ResourceTypeCollection, Mode=TwoWay}" GroupDescriptionsSource="{Binding GroupDescriptions}" MinAppointmentHeight="60" NavigationHeaderVisibility="Visible" SpecialSlotStyleSelector="{StaticResource SpecialSlotStyleSelector}" SpecialSlotsSource="{Binding SpecialSlots}" ShowCurrentTimeIndicator="True" CurrentTimeIndicatorStyle="{StaticResource CurrentTimeIndicatorStyleCustom}" CurrentDate="{Binding CurrentDate, Mode=TwoWay}" Grid.Row="1" VerticalScrollBarVisibility="Auto" VerticalAlignment="Stretch" SelectedSlot="{Binding SelectedSlot, Mode=TwoWay}" SelectedAppointment="{Binding SelectedAppointment, Mode=TwoWay}" HorizontalScrollBarVisibility="Visible" > <telerik:RadScheduleView.DragDropBehavior> <Helper:AppointmentDragDropConditionalBehavior/> </telerik:RadScheduleView.DragDropBehavior> <telerik:RadScheduleView.ViewDefinitions> <telerik:TimelineViewDefinition AppointmentFilter="{Binding FilterValue}"/> <telerik:MonthViewDefinition AppointmentFilter="{Binding FilterValue}"/> <telerik:WeekViewDefinition AppointmentFilter="{Binding FilterValue}"/> <telerik:DayViewDefinition AppointmentFilter="{Binding FilterValue}" /> </telerik:RadScheduleView.ViewDefinitions> </telerik:RadScheduleView><telerik:RadScheduleView.ViewDefinitions> <telerik:TimelineViewDefinition AppointmentFilter="{Binding FilterValue}"/> <telerik:MonthViewDefinition AppointmentFilter="{Binding FilterValue}"/> <telerik:WeekViewDefinition AppointmentFilter="{Binding FilterValue}"/> <telerik:DayViewDefinition AppointmentFilter="{Binding FilterValue}" /> </telerik:RadScheduleView.ViewDefinitions>public Predicate<IAppointment> FilterValue { get { return Filter; } } public bool Filter(IAppointment appt) { if (SelectedProcess == null && !SelectAllProcesses) return false; if (SelectAllProcesses) return true; AppointmentBase app = appt as AppointmentBase; //Custom Appointment return app != null && FilterByProcess(app); } public bool FilterByProcess(DZNEAppointmentBase app) { bool isFiltered = false; isFiltered = this.CheckedProcesses.Where(s => s.ProcessID.Equals(app.Process.ProcessID)).FirstOrDefault() != null; return isFiltered; }Filtering Scenario:
Above scenario works well for all ViewDefinitions such as Day, Week, Month, Timeline and other Custom View definitions if an only if the ActiveViewDefinitionIndex is not ZERO.
So, for above view definition list in code snippet, filter is not working for very first view definition i.e. “TimelineViewDefinition”.
I just want to know what setting I am missing or if there are other ways to implement filter.
Any input will be highly appreciated.
<Grid> <Grid.Resources> <ControlTemplate x:Key="MyCustomRowTemplate" TargetType="telerik:GridViewRow"> <Border x:Name="rowsContainer" BorderThickness="0,0,0,1"> <Grid Width="Auto" HorizontalAlignment="Stretch"> <Grid.RowDefinitions> <RowDefinition Height="20"/> <RowDefinition Height="20"/> <RowDefinition Height="20"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="150" /> </Grid.ColumnDefinitions> <TextBlock Text="Data1: " Margin="5,0,0,0" FontWeight="Bold" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" /> <TextBlock Text="{Binding Data1}" Margin="5,0,0,0" Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Left"/> <TextBlock Text="Data2: " Margin="5,0,0,0" FontWeight="Bold" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" /> <TextBlock Text="{Binding Data2}" Margin="5,0,0,0" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Left"/> <TextBlock Text="Data3: " Margin="5,0,0,0" FontWeight="Bold" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" /> <TextBlock Text="{Binding Data3}" Margin="5,0,0,0" Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Left"/> </Grid> </Border> </ControlTemplate> <Style x:Key="rowStyle" TargetType="telerik:GridViewRow"> <Setter Property="Template" Value="{StaticResource MyCustomRowTemplate}" /> </Style> </Grid.Resources> <telerik:RadGridView RowStyle="{StaticResource rowStyle}" ItemsSource="{Binding Contacts}" ShowGroupPanel="False" BorderThickness="0" IsFilteringAllowed="False" AutoGenerateColumns="False" CanUserFreezeColumns="False" > <telerik:RadGridView.Columns> <telerik:GridViewDataColumn Header="Data1" DataMemberBinding="{Binding Data1}"/> <telerik:GridViewDataColumn Header="Data2" DataMemberBinding="{Binding Data2}"/> <telerik:GridViewDataColumn Header="Data3" DataMemberBinding="{Binding Data3}"/> </telerik:RadGridView.Columns> </telerik:RadGridView> </Grid>RowStyle="{StaticResource rowStyle}" in my RadGridView then the Data is displayed correctly in the row, see screenshot 2CBFdataDataContext conn = new CBFdataDataContext(); List<spTotalRevByZipResult> sptotalrevbyzipresult = (from s in conn.spTotalRevByZip() select s).ToList(); ZipGrid.ItemsSource = sptotalrevbyzipresult;<telerik:RadCartesianChart HorizontalAlignment="Left" Margin="10,104,0,0" Grid.Row="1" VerticalAlignment="Top" Width="723" Height="218" Name="ZipGrid"> <telerik:RadCartesianChart.VerticalAxis> <telerik:LinearAxis/> </telerik:RadCartesianChart.VerticalAxis> <telerik:RadCartesianChart.HorizontalAxis> <telerik:CategoricalAxis/> </telerik:RadCartesianChart.HorizontalAxis> <telerik:RadCartesianChart.Series> <telerik:BarSeries CategoryBinding="subTotal" ValueBinding="custzip" ItemsSource="{Binding}"/> </telerik:RadCartesianChart.Series> </telerik:RadCartesianChart>CBFsqldataDataContext conn = new CBFsqldataDataContext(); List<spTotalRevByZipResult> sptotalrevbyzipresult = (from s in conn.spTotalRevByZip() select s).ToList(); ZipGrid????????? = sptotalrevbyzipresult;