Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ListView kontrol bileşeni, veri öğeleri kümesini farklı bir düzen veya görünüm kullanarak görüntülemek için altyapı sağlar. Örneğin, bir tablodaki veri öğelerini görüntülemek ve sütunlarını sıralamak isteyebilirsiniz.
ListView ListBox'den türetilir. Öğeleri genellikle bir veri koleksiyonunun üyeleridir ve ListViewItem nesneleri olarak temsil edilir. A ListViewItem bir ContentControl'dir ve yalnızca tek bir alt öğe içerebilir. Ancak bu alt öğe herhangi bir görsel öğe olabilir.
Uyarı
Bu makalede başvuruda bulunulan türler Kod başvurusu bölümünde bulunabilir.
Aşağıdaki tabloda ListView denetimiyle çalışmaya yönelik yaygın görevler listelenmiştir:
| Başlık | Description |
|---|---|
| Başlığa Tıklanarak GridView Sütununu Sıralama | Başlığa tıklandığında bir GridView sütununun nasıl sıralanacağını öğrenin. |
| ListView için Özel Görünüm Modu Oluşturma | ListView için özel görünüm modu oluşturmayı öğrenin. |
| GridView Kullanan Bir ListView Stilini Oluşturmak için Şablonları Kullanma | GridView kullanan bir ListView stilinde şablon kullanmayı öğrenin. |
| Sürüklenen GridView Sütun Üst Bilgisi için Stil Oluşturma | Sürüklenen GridView sütun başlığı için stil oluşturmayı öğrenin. |
| GridView Kullanarak ListView İçeriğini Görüntüleme | GridView kullanarak ListView içeriğini görüntülemeyi öğrenin. |
| ListView'da Seçili Öğelere Stil Eklemek için Tetikleyicileri Kullanma | ListView'da seçili öğelere stil eklemek için tetikleyicileri kullanmayı öğrenin. |
| CheckBox ile ListViewItems Oluşturma | CheckBox ile ListViewItems oluşturmayı öğrenin. |
| GridViewRowPresenter Kullanarak Verileri Görüntüleme | GridViewRowPresenter kullanarak verileri görüntülemeyi öğrenin. |
| GridView Uygulayan ListView'da Öğeleri Gruplandırma | GridView uygulayan bir ListView'da öğeleri gruplandırmayı öğrenin. |
| GridView Uygulayan ListView'da Satır Stili Oluşturma | GridView uygulayan ListView'da bir satıra nasıl stil uygulayacağınızı öğrenin. |
| ListView içinde Bir Sütunun Yatay Hizalamasını Değiştirme | ListView'da bir sütunun yatay hizalamasını değiştirmeyi öğrenin. |
| ListView'daki Her Öğe için MouseDoubleClick Olayını İşleme | ListView'daki her öğe için MouseDoubleClick olayını işlemeyi öğrenin. |
Stiller ve şablonlar
Denetime benzersiz bir görünüm vermek için varsayılanı ControlTemplate değiştirebilirsiniz. Daha fazla bilgi için bkz. Stiller ve şablonlar nedir? ve Denetim için şablon oluşturma.
İçerik özelliği
Denetim ListView, içerik özelliği olarak Items özelliğini kullanır. Bu özellik, denetimde görüntülenen öğeleri belirtmenize olanak tanır.
Parçalar
Denetim ListView adlandırılmış şablon parçaları tanımlamaz.
ControlTemplate oluşturduğunuzda bir ListView için, şablonunuz içinde bir ItemsPresenter ve bir ScrollViewer içerebilir.
ItemsPresenter her öğeyi ListView içinde görüntüler; ScrollViewer ile denetim içerisinde kaydırma yapılmasını sağlar. öğesinin ItemsPresenter doğrudan alt öğesi ScrollViewerdeğilse, adını ItemsPresentervermelisinizItemsPresenter.
Görsel durumlar
Aşağıdaki tabloda denetimin görsel durumları listelenmiştir ListView .
| VisualState Adı | VisualStateGroup Adı | Description |
|---|---|---|
| Geçerli | DoğrulamaDurumları | Denetim geçerli ve doğrulama hatası yok. |
| GeçersizOdaklı | DoğrulamaDurumları | Kontrol öğesinde doğrulama hatası var ve klavye odağı bulunuyor. |
| InvalidUnfocused | DoğrulamaDurumları | Denetimde doğrulama hatası var ancak klavye odağı yok. |
Aşağıdaki tabloda ListViewItem denetiminin durumları listelenir.
| VisualState Adı | VisualStateGroup Adı | Description |
|---|---|---|
| Sıradan | OrtakDurumlar | Varsayılan durum. |
| Disabled | OrtakDurumlar | Denetim devre dışı bırakıldı. |
| Mouseover | OrtakDurumlar | Fare işaretçisi kontrolün üzerindedir. |
| Focused | FocusStates | Denetimin klavye odağı vardır. |
| Odaklanmamış | FocusStates | Kontrolün klavye odağı yoktur. |
| Seçilmiş | Seçim Durumları | Öğe şu anda seçili. |
| Seçili değil | Seçim Durumları | Öğe seçilmedi. |
| SeçiliOdaklanmamış | Seçim Durumları | Öğe seçili ancak klavye odağı yok. |
| Geçerli | DoğrulamaDurumları | Denetim geçerli ve doğrulama hatası yok. |
| GeçersizOdaklı | DoğrulamaDurumları | Kontrol öğesinde doğrulama hatası var ve klavye odağı bulunuyor. |
| InvalidUnfocused | DoğrulamaDurumları | Denetimde doğrulama hatası var ancak klavye odağı yok. |
Görünüm modları
Denetim ListView içeriği için bir görünüm modu belirtmek amacıyla, View özelliğini ayarlayın. Windows Presentation Foundation'ın (WPF) sağladığı bir görünüm modu, özelleştirilebilir sütunları olan bir tabloda veri öğeleri koleksiyonunu görüntüleyen modudur GridView.
Aşağıdaki örnekte, bir GridView denetim için çalışan bilgilerini görüntüleyen ListView nasıl tanımlanacağı gösterilmektedir.
<ListView ItemsSource="{Binding Source={StaticResource EmployeeInfoDataSource}}">
<ListView.View>
<GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Employee Information">
<GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}" Header="First Name" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=LastName}" Width="100">
<GridViewColumnHeader>Last Name
<GridViewColumnHeader.ContextMenu>
<ContextMenu MenuItem.Click="LastNameCM_Click" Name="LastNameCM">
<MenuItem Header="Ascending" />
<MenuItem Header="Descending" />
</ContextMenu>
</GridViewColumnHeader.ContextMenu>
</GridViewColumnHeader>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=EmployeeNumber}" Header="Employee No." Width="100"/>
</GridView>
</ListView.View>
</ListView>
Sınıfından ViewBase devralan bir sınıf tanımlayarak özel görünüm modu oluşturabilirsiniz. sınıfı, ViewBase özel görünüm oluşturmak için ihtiyacınız olan altyapıyı sağlar. Özel görünüm oluşturma hakkında daha fazla bilgi için bkz. ListView için Özel Görünüm Modu Oluşturma.
Görünüm modlarını paylaşma
İki ListView denetim aynı görünüm modunu aynı anda paylaşamaz. Aynı görünüm modunu birden ListView fazla denetimle kullanmaya çalışırsanız bir özel durum oluşur. Birden ListViewfazla tarafından aynı anda kullanılabilecek bir görünüm modu belirtmek için şablonları veya stilleri kullanın.
Veri bağlama
Items ve ItemsSource özelliklerini kullanarak bir ListView denetimi için öğeleri belirtin. Aşağıdaki örnek, ItemsSource özelliğini EmployeeInfoDataSource adlı bir veri koleksiyonuna ayarlar.
<ListView ItemsSource="{Binding Source={StaticResource EmployeeInfoDataSource}}">
Bir GridView, GridViewColumn nesneler belirtilen veri alanlarına bağlanır. Aşağıdaki örnek, DisplayMemberBinding özelliği için Binding belirterek bir GridViewColumn nesneyi veri alanına bağlar.
GridViewColumn gvc1 = new GridViewColumn();
gvc1.DisplayMemberBinding = new Binding("FirstName");
gvc1.Header = "FirstName";
gvc1.Width = 100;
Dim gvc1 As New GridViewColumn()
gvc1.DisplayMemberBinding = New Binding("FirstName")
gvc1.Header = "FirstName"
gvc1.Width = 100
<GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}" Header="First Name" Width="100"/>
Ayrıca, sütundaki hücrelere stil uygulamak için kullandığınız DataTemplate tanımının bir parçası olarak bir Binding belirtebilirsiniz. Aşağıdaki örnekte, DataTemplate ile ResourceKey tanımlanan değeri için Bindingöğesini GridViewColumn ayarlar. Bu örnekte DisplayMemberBinding öğesi tanımlanmamıştır çünkü CellTemplate üzerinde önceliğe sahiptir.
<DataTemplate x:Key="myCellTemplateMonth">
<DockPanel>
<TextBlock Foreground="DarkBlue" HorizontalAlignment="Center">
<TextBlock.Text>
<Binding Path="Month"/>
</TextBlock.Text>
</TextBlock>
</DockPanel>
</DataTemplate>
<GridViewColumn Header="Month" Width="80"
CellTemplate="{StaticResource myCellTemplateMonth}"/>
ListView denetimlerini şekillendirme
Denetim ListView , görüntülenen veri öğelerini temsil eden nesneler içerir ListViewItem . Veri öğelerinin içeriğini ve stilini tanımlamak için aşağıdaki özellikleri kullanabilirsiniz:
- Denetimde ListView , ItemTemplateve ItemTemplateSelector özelliklerini kullanınItemContainerStyle.
- Denetimde ListViewItem, ContentTemplate ve ContentTemplateSelector özelliklerini kullanın.
Bir GridView içindeki hücreler arasında hizalama sorunlarını önlemek için bir öğenin genişliğini etkileyen özellik ayarlanması veya içerik eklenmesi için ItemContainerStyle kullanmayın. Örneğin, Margin özelliğini ItemContainerStyle içinde ayarladığınızda bir hizalama sorunu oluşabilir. GridView içindeki öğelerin genişliğini etkileyen özellikleri belirtmek veya içerik tanımlamak için GridView sınıfının ve ilgili sınıflarının, örneğin GridViewColumn, özelliklerini kullanın. Nasıl kullanılacağı GridView ve destekleyici sınıfları hakkında daha fazla bilgi için bkz. GridView'a Genel Bakış.
Bir denetim için ItemContainerStyle bir ListView tanımlarsanız ve aynı zamanda bir ItemTemplate tanımlarsanız, ItemTemplate öğesinin düzgün çalışması için stile ContentPresenter eklemeniz gerekir.
GridView tarafından görüntülenen ListView içerik için HorizontalContentAlignment ve VerticalContentAlignment özelliklerini kullanmayın. bir sütunundaki içeriğin hizalamasını GridViewbelirtmek için bir CellTemplatetanımlayın.
Kod referansı
Bu makalede aşağıdaki nesnelere başvurulmlanmıştır:
EmployeeInfoDataSourceveri toplama. Visual Basic .NET kullanıyorsanız,Windowöğesi örnek kodda gördüklerinizden biraz farklı bildirilir:<Window x:Class="SDKSample.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Loaded="OnLoad" xmlns:ds="clr-namespace:SDKSample"> <Window.Resources> <ObjectDataProvider x:Key="EmployeeInfoDataSource" ObjectType="{x:Type ds:myEmployees}" /> </Window.Resources>EmployeeInfosınıfı, veri toplama içinEmployeeInfoDataSourcetür olarak kullanılır.public class EmployeeInfo { private string _firstName; private string _lastName; private string _employeeNumber; public string FirstName { get {return _firstName;} set {_firstName = value;} } public string LastName { get {return _lastName;} set {_lastName = value;} } public string EmployeeNumber { get {return _employeeNumber;} set {_employeeNumber = value;} } public EmployeeInfo(string firstname, string lastname, string empnumber) { _firstName = firstname; _lastName = lastname; _employeeNumber = empnumber; } }Public Class EmployeeInfo Private _firstName As String Private _lastName As String Private _employeeNumber As String Public Property FirstName() As String Get Return _firstName End Get Set(ByVal value As String) _firstName = value End Set End Property Public Property LastName() As String Get Return _lastName End Get Set(ByVal value As String) _lastName = value End Set End Property Public Property EmployeeNumber() As String Get Return _employeeNumber End Get Set(ByVal value As String) _employeeNumber = value End Set End Property Public Sub New(ByVal firstname As String, ByVal lastname As String, ByVal empnumber As String) _firstName = firstname _lastName = lastname _employeeNumber = empnumber End Sub End Class
Ayrıca bakınız
.NET Desktop feedback