or
<telerik:RadGridView Grid.Column="1" Grid.Row="1" Name="_gridTableGrid" ItemsSource="{Binding TableDataView, Mode=TwoWay}" />private void OnRowValidating(object sender, Telerik.Windows.Controls.GridViewRowValidatingEventArgs e){ e.IsValid = false; e.ValidationResults.Add(new Telerik.Windows.Controls.GridViewCellValidationResult() {ErrorMessage = "byte me!"} );}<telerik:GridViewComboBoxColumn Header="Dock" DisplayMemberPath="Name" SelectedValueMemberPath="Name" DataMemberBinding="{Binding DockName}" ItemsSource="{Binding Source={StaticResource LocatorKeeper}, Path=Locator.DocksDataViewModel.DocksCollection}" /><Window x:Class="VirtualQueryableCollectionViewBugDemo.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Height="510" Width="700"> <DockPanel> <TextBlock Width="250" Text="{Binding Log}" /> <telerik:RadGridView ItemsSource="{Binding VirtualQueryableCollectionView}" EnableRowVirtualization="True" /> </DockPanel></Window>namespace VirtualQueryableCollectionViewBugDemo{ public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new MainViewModel(); } }}using System;using System.Collections.ObjectModel;using System.ComponentModel;using System.Linq;using Telerik.Windows.Data;namespace VirtualQueryableCollectionViewBugDemo{ public class MainViewModel : INotifyPropertyChanged { public VirtualQueryableCollectionView VirtualQueryableCollectionView { get; set; } private ObservableCollection<Row> items { get; set; } public MainViewModel() { this.items = new ObservableCollection<Row>(Generator.GenerateTestData()); this.VirtualQueryableCollectionView = new VirtualQueryableCollectionView(this.items); this.VirtualQueryableCollectionView.LoadSize = 20; this.VirtualQueryableCollectionView.ItemsLoading += (s, e) => { AppendLog(string.Format("Load StartIndex={0} ItemsCount={1}", e.StartIndex, e.ItemCount)); this.VirtualQueryableCollectionView.Load(e.StartIndex, this.items.Cast<Row>().Skip(e.StartIndex).Take(e.ItemCount)); }; } private string log; public string Log { get { return this.log; } set { this.log = value; RaisePropertyChanged("Log"); } } public void AppendLog(string message) { this.Log = message + Environment.NewLine + this.Log; } public event PropertyChangedEventHandler PropertyChanged; private void RaisePropertyChanged(string propertyName) { if (this.PropertyChanged != null) { this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } }}using System;using System.Collections.Generic;namespace VirtualQueryableCollectionViewBugDemo{ public class Row { public int Id { get; set; } public DateTime DateTime { get; set; } public TimeSpan TimeSpan { get; set; } } public static class Generator { public static int TestDataLength = 1 * 1000 * 1000; public static Random rng = new Random(); public static List<Row> GenerateTestData() { var result = new List<Row>(TestDataLength); for (int i = 0; i < TestDataLength; i++) { string name = i.ToString(); DateTime dateTime = new DateTime(rng.Next(1990, 2020), rng.Next(1, 12), rng.Next(1, 28)); TimeSpan timeSpan = new TimeSpan(rng.Next(1, 23), rng.Next(1, 59), rng.Next(1, 59)); result.Add(new Row() { Id = i, DateTime = dateTime, TimeSpan = timeSpan }); } return result; } }}<telerik:GridViewDataColumn Header="Error" > <telerik:GridViewDataColumn.CellTemplate> <DataTemplate> <telerik:GridViewCell> <telerik:GridViewCell.DataContext> <Binding NotifyOnValidationError="True" > <Binding.ValidationRules> <validators:MyValidator /> </Binding.ValidationRules> </Binding> </telerik:GridViewCell.DataContext> <telerik:GridViewCell.Style> <Style TargetType="{x:Type telerik:GridViewCell}" > <Style.Triggers> <Trigger Property="Validation.HasError" Value="true"> <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/> </Trigger> </Style.Triggers> </Style> </telerik:GridViewCell.Style> <telerik:GridViewCell.Content> <TextBlock Text="!!!" /> </telerik:GridViewCell.Content> </telerik:GridViewCell> </DataTemplate> </telerik:GridViewDataColumn.CellTemplate></telerik:GridViewDataColumn>
<DataTemplate x:Key="outlookBaItemDropDownContentTemplate"> <StackPanel Orientation="Horizontal"> <Image Source="{Binding SmallIcon}" Width="20" /> <Label Content="{Binding Header}" /> </StackPanel></DataTemplate>
<Window x:Class="RadBusyIndicatorDemo.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Height="350" Width="525" WindowStartupLocation="CenterScreen"> <StackPanel> <TextBlock x:Name="textBlock" /> <telerik:RadBusyIndicator IsBusy="True"> <StackPanel> <Button Content="Button1" Click="Button_Click"/> <telerik:RadGridView ItemsSource="{Binding Items}" Height="300" /> </StackPanel> </telerik:RadBusyIndicator> </StackPanel></Window>namespace RadBusyIndicatorDemo{ public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new MainViewModel(); } private void Button_Click(object sender, RoutedEventArgs e) { this.textBlock.Text = "clicked!"; // shouldn't happen } }}
| Level 1 | Level 2 | Level 3 | Level 4 | Level 5 | Level 6 | Level 7 | ||||||||
| (-) | Org | |||||||||||||
| Dept 1 | ||||||||||||||
| Cell 1 | ||||||||||||||
| Mgr 1 | ||||||||||||||
| Lead 1 | ||||||||||||||
| Resp 1 | ||||||||||||||
| Work1 | ||||||||||||||
| Work2 | ||||||||||||||
| Work3 | ||||||||||||||
| Resp 2 | ||||||||||||||
| Work4 | ||||||||||||||
| Work5 | ||||||||||||||
| Work6 | ||||||||||||||
| (+) | Dept 2 | |||||||||||||
| (+) | Dept 3 | |||||||||||||
| (-) | Dept4 | |||||||||||||
| Cell 4 | ||||||||||||||
| Mgr 4 | ||||||||||||||
| Lead 4 | ||||||||||||||
| Resp 4 | ||||||||||||||
| Work1 | ||||||||||||||
| Work2 | ||||||||||||||
| Work3 | ||||||||||||||
| Resp 5 | ||||||||||||||
| Work4 | ||||||||||||||
| Work5 | ||||||||||||||
| Work6 | ||||||||||||||
| Dept 2 & Dept 3 are not in expanded state. While I filter I want the filter should be applied to those records of Dept 1 (Resp1, Resp2) & Dept 4 (Resp4 & Resp5)only | ||||||||||||||
| User can right click on Level 7 data only | ||||||||||||||

<UserControl.Resources>
<telerik:VirtualQueryableCollectionView x:Key="VirtualizedTransactions"
LoadSize="10"
ItemsSource="{Binding AllTransactions}"
/>
</UserControl.Resources>
