TreeView Genel Bakışı
TreeViewDenetim, daraltılabilir düğümleri kullanarak hiyerarşik bir yapıda bilgi görüntülemenin bir yolunu sağlar. Bu konu, TreeView ve denetimlerini tanıtır ve kullanımları için TreeViewItem basit örnekler sağlar.
TreeView nedir?
TreeView , ItemsControl denetimleri kullanarak öğeleri hedefleyen bir TreeViewItem . Aşağıdaki örnek bir oluşturur TreeView .
<TreeView Name="myTreeViewEvent" >
<TreeViewItem Header="Employee1" IsSelected="True">
<TreeViewItem Header="Jesper Aaberg"/>
<TreeViewItem Header="Employee Number">
<TreeViewItem Header="12345"/>
</TreeViewItem>
<TreeViewItem Header="Work Days">
<TreeViewItem Header="Monday"/>
<TreeViewItem Header="Tuesday"/>
<TreeViewItem Header="Thursday"/>
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="Employee2">
<TreeViewItem Header="Dominik Paiha"/>
<TreeViewItem Header="Employee Number">
<TreeViewItem Header="98765"/>
</TreeViewItem>
<TreeViewItem Header="Work Days">
<TreeViewItem Header="Tuesday"/>
<TreeViewItem Header="Wednesday"/>
<TreeViewItem Header="Friday"/>
</TreeViewItem>
</TreeViewItem>
</TreeView>
TreeView oluşturma
TreeViewDenetim bir denetim hiyerarşisi içerir TreeViewItem . Bir TreeViewItem Denetim, HeaderedItemsControl ve bir koleksiyonuna sahiptir Header Items .
Kullanarak bir ile tanımlıyorsanız TreeView Extensible Application Markup Language (XAML) , Header bir TreeViewItem denetimin içeriğini ve koleksiyonunu oluşturan öğeleri açık bir şekilde tanımlayabilirsiniz. Önceki çizimde bu yöntem gösterilmektedir.
Ayrıca bir ItemsSource veri kaynağı olarak belirtebilirsiniz ve sonra HeaderTemplate ItemTemplate içeriği tanımlamak için bir ve belirtebilirsiniz TreeViewItem .
Bir denetimin yerleşimini tanımlamak için TreeViewItem nesneleri de kullanabilirsiniz HierarchicalDataTemplate . Daha fazla bilgi ve bir örnek için bkz. SelectedValue, SelectedValuePath ve SelectedItem kullanma.
Bir öğe bir TreeViewItem Denetim değilse, denetim görüntülenirken otomatik olarak bir denetim tarafından alınır TreeViewItem TreeView .
Bir TreeViewItem genişletme ve daraltma
Kullanıcı bir öğesini genişlediğinde TreeViewItem , IsExpanded özelliği olarak ayarlanır true . Ayrıca TreeViewItem , IsExpanded özelliği true (Genişlet) veya false (daraltma) özelliğini ayarlayarak doğrudan Kullanıcı eylemi olmadan bir öğesini genişletebilir veya daraltabilirsiniz. Bu özellik değiştiğinde Expanded veya bir Collapsed olay oluşur.
BringIntoViewYöntemi bir TreeViewItem denetimde çağrıldığında, TreeViewItem ve üst TreeViewItem denetimleri genişletilir. Bir TreeViewItem veya kısmen görünür değilse, görünür TreeView hale getirmek için kayar.
TreeViewItem Seçimi
Kullanıcı TreeViewItem onu seçmek için bir denetime tıkladığında Selected olay oluşur ve IsSelected özelliği olarak ayarlanır true . , TreeViewItem Denetimin de olur SelectedItem TreeView . Buna karşılık, seçim bir TreeViewItem denetimden değiştiğinde, Unselected olayı oluşur ve IsSelected özelliği olarak ayarlanır false .
SelectedItem TreeView Denetimdeki özelliği salt okunurdur. bu nedenle, açıkça ayarlayamazsınız. SelectedItemKullanıcı bir TreeViewItem denetime tıkladığında veya IsSelected özellik denetimde olarak ayarlandığında özellik ayarlanır true TreeViewItem .
Bir öğesini SelectedValuePath belirtmek için özelliğini kullanın SelectedValue SelectedItem . Daha fazla bilgi için bkz. SelectedValue, SelectedValuePath ve SelectedItem kullanma.
SelectedItemChangedSeçili bir değişikliğin ne zaman olacağını öğrenmek için olaya bir olay işleyicisi kaydedebilirsiniz TreeViewItem . RoutedPropertyChangedEventArgs<T>Olay işleyicisine sunulan, OldValue önceki seçim ve geçerli seçim olan öğesini belirtir NewValue . nullUygulamanın veya kullanıcının önceki veya geçerli bir seçimi yapmadığından, her iki değer de olabilir.
TreeView stili
Bir denetimin varsayılan stili, TreeView StackPanel denetimi içeren bir nesnenin içine koyar ScrollViewer . Width Height ' A ait ve özelliklerini ayarladığınızda TreeView , bu değerler öğesini görüntüleyen nesnesini boyutlandırdığınızda kullanılır StackPanel TreeView . Görüntülenecek içerik görüntüleme alanından büyükse, ScrollViewer kullanıcının içeriği kaydırabilmesi için otomatik olarak bir görüntülenir TreeView .
Bir denetimin görünüşünü özelleştirmek için TreeViewItem , Style özelliği özel olarak ayarlayın Style .
Aşağıdaki örnek, Foreground FontSize bir denetim için ' a kullanarak ve özellik değerlerinin nasıl ayarlanacağını gösterir TreeViewItem Style .
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="FontSize" Value="12"/>
</Style>
TreeView öğelerine görüntü ve diğer Içerik ekleme
Bir ' ın içeriğine birden fazla nesne ekleyebilirsiniz Header TreeViewItem . İçeriğe birden fazla nesne eklemek için Header , nesneleri bir veya gibi bir düzen denetiminin içine ekleyin Panel StackPanel .
Aşağıdaki örnek, bir, Header TreeViewItem ve öğelerinin her ikisi de bir CheckBox TextBlock denetimin içine DockPanel nasıl tanımlanacağını gösterir.
<TreeViewItem>
<TreeViewItem.Header>
<DockPanel>
<CheckBox/>
<TextBlock>
TreeViewItem Text
</TextBlock>
</DockPanel>
</TreeViewItem.Header>
</TreeViewItem>
Aşağıdaki örnek, bir DataTemplate Image denetimin içindeki ve içeren bir ' ın nasıl tanımlanacağını gösterir TextBlock DockPanel . DataTemplateVeya için öğesini ayarlamak için kullanabilirsiniz HeaderTemplate ItemTemplate TreeViewItem .
<DataTemplate x:Key="NewspaperTVItem">
<DockPanel>
<Image Source="images\icon.jpg"/>
<TextBlock VerticalAlignment="center" Text ="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>