TreeView'a Genel Bakış
TreeView denetimi, daraltılabilir düğümleri kullanarak bilgileri hiyerarşik bir yapıda görüntülemenin bir yolunu sağlar. Bu konu başlığında TreeView ve TreeViewItem denetimleri tanıtılmaktadır ve bunların kullanımına ilişkin basit örnekler sağlanmaktadır.
TreeView nedir?
TreeView, TreeViewItem denetimlerini kullanarak öğeleri iç içe yerleştiren bir ItemsControl'dir. Aşağıdaki örnek bir TreeViewoluşturur.
<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
TreeView denetimi, TreeViewItem denetimlerin hiyerarşisini içerir. TreeViewItem denetimi, Header ve bir Items koleksiyonu olan bir HeaderedItemsControl'dir.
Genişletilebilir Uygulama biçimlendirme dili (XAML) kullanarak bir TreeView tanımlıyorsanız, bir TreeViewItem denetiminin Header içeriğini ve koleksiyonunu oluşturan öğeleri açıkça tanımlayabilirsiniz. Önceki çizimde bu yöntem gösterilmektedir.
Ayrıca veri kaynağı olarak bir ItemsSource belirtebilir ve ardından TreeViewItem içeriğini tanımlamak için bir HeaderTemplate ve ItemTemplate belirtebilirsiniz.
TreeViewItem denetiminin düzenini tanımlamak için HierarchicalDataTemplate nesneleri de kullanabilirsiniz. Daha fazla bilgi ve örnek için bkz. SelectedValue, SelectedValuePath ve SelectedItemkullanma .
Bir öğe TreeViewItem denetimi değilse, TreeView denetimi görüntülendiğinde otomatik olarak TreeViewItem denetimiyle sarılır.
TreeViewItem'i Genişletme ve Daraltma
Kullanıcı bir TreeViewItemgenişletirse, IsExpanded özelliği true
olarak ayarlanır. Ayrıca, IsExpanded özelliğini true
(genişletme) veya false
(daraltma) olarak ayarlayarak doğrudan kullanıcı eylemi olmadan TreeViewItem genişletebilir veya daraltabilirsiniz. Bu özellik değiştiğinde, bir Expanded veya Collapsed olayı gerçekleşir.
BringIntoView yöntemi bir TreeViewItem denetiminde çağrıldığında, TreeViewItem ve ana TreeViewItem denetimleri genişletilir. Bir TreeViewItem görünmüyorsa veya kısmen görünüyorsa, TreeView'i kaydırarak görünür hale getirir.
TreeViewItem Seçimi
Kullanıcı seçmek için bir TreeViewItem denetimine tıkladığında, Selected olayı gerçekleşir ve IsSelected özelliği true
olarak ayarlanır.
TreeViewItem ayrıca TreeView denetiminin SelectedItem olur. Buna karşılık, seçim bir TreeViewItem denetiminden değiştiğinde, Unselected olayı gerçekleşir ve IsSelected özelliği false
olarak ayarlanır.
TreeView denetimindeki SelectedItem özelliği salt okunur bir özelliktir; bu nedenle, açıkça ayarlayamazsınız.
SelectedItem özelliği, kullanıcı bir TreeViewItem denetimine tıklarsa veya IsSelected özelliği TreeViewItem denetiminde true
olarak ayarlandığında ayarlanır.
SelectedItem'nin bir SelectedValue'ini tanımlamak için SelectedValuePath özelliğini kullanın. Daha fazla bilgi için 'ı ve'i kullanarak SelectedValue, SelectedValuePath ve SelectedItem'e bakın.
Seçilen bir TreeViewItem ne zaman değiştiğini belirlemek için SelectedItemChanged olayına bir olay işleyicisi kaydedebilirsiniz. Olay işleyicisine sağlanan RoutedPropertyChangedEventArgs<T>, önceki seçim olan OldValueve geçerli seçim olan NewValuebelirtir. Uygulama veya kullanıcı önceki veya geçerli bir seçim yapmış değilse, iki değerden biri de null
olabilir.
TreeView Stili
TreeView denetiminin varsayılan stili, ScrollViewer denetimini içeren bir StackPanel nesnesinin içine yerleştirilmesini sağlar. bir TreeViewiçin Width ve Height özelliklerini ayarladığınızda, bu değerler TreeViewgörüntüleyen StackPanel nesnesini boyutlandırmak için kullanılır. Görüntülenecek içerik görüntüleme alanından büyükse, kullanıcının TreeView içeriği kaydırabilmesi için otomatik olarak bir ScrollViewer görüntülenir.
TreeViewItem denetiminin görünümünü özelleştirmek için Style özelliğini özel bir Styleolarak ayarlayın.
Aşağıdaki örnekte, Stylekullanarak bir TreeViewItem denetimi için Foreground ve FontSize özellik değerlerinin nasıl ayarlanacağı gösterilmektedir.
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="FontSize" Value="12"/>
</Style>
TreeView Öğelerine Görüntü ve Diğer İçerik Ekleme
TreeViewItem'in Header içeriğine birden fazla nesne ekleyebilirsiniz. Header içeriğe birden çok nesne eklemek için, nesneleri Panel veya StackPanelgibi bir düzen denetiminin içine alın.
Aşağıdaki örnekte, bir TreeViewItemHeader bir CheckBox ve her ikisi de bir DockPanel denetimi içine alınmış TextBlock olarak nasıl tanımlanacağı gösterilmektedir.
<TreeViewItem>
<TreeViewItem.Header>
<DockPanel>
<CheckBox/>
<TextBlock>
TreeViewItem Text
</TextBlock>
</DockPanel>
</TreeViewItem.Header>
</TreeViewItem>
Aşağıdaki örnekte, Image içeren bir DataTemplate ve DockPanel denetimi içine alınmış bir TextBlock nasıl tanımlanacağı gösterilmektedir. Bir TreeViewItemiçin HeaderTemplate veya ItemTemplate'yi ayarlamak amacıyla bir DataTemplate kullanabilirsiniz.
<DataTemplate x:Key="NewspaperTVItem">
<DockPanel>
<Image Source="images\icon.jpg"/>
<TextBlock VerticalAlignment="center" Text ="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>
Ayrıca bkz.
- TreeView
- TreeViewItem
- Nasıl Yapılır Konuları
- WPF İçerik Modeli
.NET Desktop feedback