2012-10-24 18 views
5

RadTreeView öğesinin ItemSource nesnesini filtrelemek için bir RadDataFilter kullanıyorum, ancak bu kod kullanıldığında filtre yalnızca yetersiz olan Kök düğümlerine uygulanır. Filtresinin, düğümlerin hiyerarşisinde aşağıya çekilmesi için bir yol var mı? Böylece, her düğüm için yüklemem çağrılmalı mı? Başka bir deyişle, filtre TreeView'a bir bütün olarak uygulanabilir mi?Filtre RadTreeView Öğeleri RadDataFilter tarafından

RadDataFilter: Kaynak, ViewModel'deki Gözlemlenebilir Bir Veritabanına bağlanır. Ben Filtre DependencyObject ve böylece DP Değer miras yok değil ItemsCollection bir özelliği (bir DP) olduğunu tanıyoruz

<telerik:RadDataFilter Name="radDataFilter" 
          telerik:StyleManager.Theme="Metro" 
          Grid.Row="2" 
          VerticalAlignment="Top" 
          HorizontalAlignment="Center" 
          MaxHeight="250" 
          Width="500" 
          BorderBrush="SkyBlue" 
          BorderThickness="2"      
          Source="{Binding SampleCollection}" 
          Margin="1" /> 
the RadTreeView: 
<telerik:RadTreeView x:Name="RadTreeView1" 
           VerticalAlignment="Top" 
           HorizontalAlignment="Stretch" 
           Grid.Row="1" 
           ToolBar.OverflowMode="Always" 
           BorderBrush="SkyBlue" 
           BorderThickness="2" 
           MinHeight="300" 
           MaxHeight="500" 
           MinWidth="500" 
           telerik:StyleManager.Theme="Metro" 
           ItemsSource="{Binding FilteredSource,ElementName=radDataFilter}"> 
     > 
     <telerik:RadTreeView.ItemTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding Children,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"> 
       <TextBlock x:Name="Item" Text="{Binding SampleCode}"> 
       </TextBlock> 
       <HierarchicalDataTemplate.Triggers> 
        <DataTrigger Binding="{Binding IsDescribed, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Value="true"> 
         <Setter TargetName="Item" Property="Foreground" Value="Red"/> 
        </DataTrigger> 
       </HierarchicalDataTemplate.Triggers> 
      </HierarchicalDataTemplate> 
     </telerik:RadTreeView.ItemTemplate> 
    </telerik:RadTreeView> 

. Ağaçtaki her düğümün kendi Filtresi olan kendi ItemsCollection vardır. Her Düğümün Filtresini nasıl ayarlayabilirim?

+0

her çocuğa sizin filtre uygulamak ardından LoadOnDemand işlevselliğini kullanabilir miyim? Bu, teorik olarak, özellikle veri kümeleriniz büyük olacak şekilde büyüyecekse, performansı artırmalıdır. –

+0

bu soruyu telerik'e sormalısın. Telerik forumlarda demek istiyorum. Muhtemelen bir cevabı vardır. – Cagatay

cevap

0

Her bir düğüm için (hiyerarşik seviyeden bağımsız olarak) çalıştırılan NodeDataBound olayını kullanmanızı tavsiye ederim. Bu şekilde, düğümde yapmak istediğiniz filtrelemeyi tamamen kontrol edebilirsiniz. o ağaca ekleniyor olarak

protected void RadTreeView1_NodeDataBound(object sender, RadTreeNodeEventArgs e) 
{  
    e.Node.ToolTip = (e.Node.DataItem as DataRowView)["Description"].ToString(); 
} 

http://www.telerik.com/help/aspnet-ajax/treeview-server-node-databound.html

İlgili konular