Aracılığıyla paylaş


DataGrid

DataGrid denetimi sql veritabanı, LINQ sorgusu veya başka bir bağlanabilir veri kaynağı gibi birçok farklı kaynaktan verileri görüntülemenize ve düzenlemenize olanak tanır. Daha fazla bilgi için bkz. bağlama kaynaklarına genel bakış.

Veri satırları içeren DataGrid denetimini gösteren ekran görüntüsü.

Verilere bağlama

DataGrid'yi verilere bağlamak için, ItemsSource özelliğini bir IEnumerable uygulaması olarak ayarlayın. Veri kılavuzundaki her satır veri kaynağındaki bir nesneye ve veri kılavuzundaki her sütun veri nesnesinin özelliğine bağlıdır.

DataGrid Kaynak verilere öğeler eklendiğinde veya kaynak verilerden kaldırıldığında kullanıcı arabiriminin otomatik olarak güncelleştirilmesi için , DataGrid arabirimini uygulayan INotifyCollectionChanged bir koleksiyona bağlanmalıdır, örneğin.ObservableCollection<T> Özellik değişikliklerini otomatik olarak yansıtmak için, kaynak koleksiyondaki nesnelerin INotifyPropertyChanged arabirimini uygulamaları gerekmektedir. Daha fazla bilgi için bkz. Veri Bağlamaya Genel Bakış.

Sütunlar metinleri, ComboBoxgibi denetimleri veya resimler, düğmeler veya şablonda yer alan herhangi bir içerik gibi diğer WPF içeriklerini görüntüleyebilir. Şablonda tanımlanan verileri görüntülemek için bir DataGridTemplateColumn kullanabilirsiniz. Aşağıdaki tabloda varsayılan olarak sağlanan sütun türleri listelenmiştir.

Oluşturulan Sütun Türü Veri Türü
DataGridTextColumn String
DataGridCheckBoxColumn Boolean
DataGridComboBoxColumn Enum
DataGridHyperlinkColumn Uri

Sütunları otomatik oluşturma

Varsayılan olarak, özelliği ayarladığınızda DataGridItemsSource denetim sütunları otomatik olarak oluşturur. Oluşturulan sütunun türü, önceki tabloda gösterildiği gibi sütundaki veri türüne bağlıdır.

Sütunlar otomatik olarak oluşturulduğunda, sütunları AutoGeneratingColumn öğesine eklenmeden önce özelleştirmek veya iptal etmek için DataGrid olayını işleyebilirsiniz. öğesine hem kullanıcı tanımlı sütunlar hem de otomatik oluşturulan sütunlar DataGrideklerseniz, önce kullanıcı tanımlı sütunlar eklenir. Sütunların görüntüleme sırasını yeniden düzenlemek için tek tek sütunların DisplayIndex özelliğini ayarlayabilirsiniz.

özelliğini AutoGenerateColumnsolarak ayarlayarak false otomatik sütun oluşturmayı engelleyebilirsiniz. Bu, tüm sütunları açıkça oluşturmak ve yapılandırmak istiyorsanız kullanışlıdır.

Özel sütunlar

Yerleşik sütun türleri gereksinimlerinizi karşılamıyorsa, özel bir sütun tanımlamak için DataGridTemplateColumn türünü kullanın. DataGridTemplateColumn türü, hem görüntüleme hem de düzenleme modları için içerik şablonları belirtmenizi sağlayan CellTemplate ve CellEditingTemplate özelliklerini sağlar. Örneğin, tarihler için özel bir sütun tanımlayabilirsiniz. CellTemplate, bir tarihi görüntülemek için bir TextBlock tanımlayabilir ve CellEditingTemplate tarihi düzenlemek için bir DatePicker denetim tanımlayabilir.

Koleksiyonu, çalışma zamanında kontroldeki Columns sütunlarını program aracılığıyla eklemek, yerleştirmek, kaldırmak ve değiştirmek için kullanabilirsiniz. Bir sütunun otomatik olarak mı oluşturulduğunu IsAutoGenerated yoksa kullanıcı tanımlı mı olduğunu belirlemek için özelliğini denetleyin. Otomatik olarak oluşturulan sütunlar, değişiklikler yapıldığında ItemsSource otomatik olarak eklenir, kaldırılır veya yeniden oluşturulur.

DataGrid, hücre yazı tipi, renk ve boyut gibi görünümde özelleştirilebilir. DataGrid, diğer WPF denetimlerinin tüm stil ve şablon oluşturma işlevlerini destekler. DataGrid düzenleme, sıralama ve doğrulama için varsayılan ve özelleştirilebilir davranışları da içerir.

Düzenleme

Varsayılan olarak, DataGrid içinde öğeleri doğrudan düzenleyebilirsiniz. Düzenlemelerin doğru şekilde işlenip iptal edilebileceğini garanti etmek için, DataGrid içindeki nesnelerin IEditableObject arabirimini uygulaması gerekmektedir. Alternatif olarak, IsReadOnly içinde düzenlemeyi devre dışı bırakmak için true özelliğini DataGrid olarak ayarlayabilirsiniz.

, DataGrid aşağıdaki düzenleme komutları için yerleşik desteğe sahiptir:

Command Varsayılan Anahtar
BeginEditCommand F2
CancelEditCommand ESC
CommitEditCommand ENTER
DeleteCommand DELETE

Geçerli hücreye tıklayarak veya F2 tuşuna basarak düzenleme moduna alırsınız. Hücre düzeyinde düzenleme, aynı satırdaki başka bir hücreye geçtiğinizde veya hücre düzenleme modundayken ENTER tuşuna bastığınızda işlenir. Satırdaki tüm düzenlemeler, başka bir satıra geçtiğinizde veya satır düzenleme modundayken ENTER tuşuna bastığınızda işlenir. Esc tuşuna bir kez basarak hücre düzenlemesini iptal eder ve ESC tuşuna iki kez basarak bir satırdaki tüm düzenlemeleri iptal edebilirsiniz. Düzenlemeleri program aracılığıyla işleme ve iptal etme hakkında daha fazla bilgi için , BeginEditve CommitEdit yöntemlerine CancelEditbakın.

CanUserAddRows ve CanUserDeleteRows özelliklerini kullanıcıların satır ekleyip silebilmesini belirtmek amacıyla ayarlayın. Kullanıcı DELETE tuşuna basarak seçili satırları silebilir. CanUserAddRows özelliği true olarak ayarlanırsa, DataGrid içindeki son satır olarak yeni bir öğe satırı eklenir. InitializingNewItem olayını düzenleyerek yeni öğeler için varsayılan değerler ayarlayabilirsiniz.

Uyarı

Düzenleme eylemlerine izin verilip verilmeyeceği, IsReadOnly ve IsEnabled durumları ile DataGrid temel alınan veri koleksiyonunun eyleme izin verip vermediği gibi birçok faktörden etkilenir.

Seleksiyon

Varsayılan olarak, bir kullanıcı içindeki bir hücreye DataGridtıkladığında satırın tamamı seçilir ve bir kullanıcı birden çok satır seçebilir. Bir kullanıcının hücreleri, tam satırları veya her ikisini birden seçip seçemeyeceğini belirtmek için özelliğini ayarlayabilirsiniz SelectionUnit . SelectionMode Birden çok satır veya hücrenin seçilip seçilemeyeceğini ya da yalnızca tek satır veya hücre seçilip seçilemeyeceğini belirtmek için özelliğini ayarlayın.

özelliğinden SelectedCells seçilen hücreler hakkında bilgi alabilirsiniz. Seçimin değiştirildiği hücreler hakkında SelectedCellsChangedEventArgsSelectedCellsChanged olayında bilgi alabilirsiniz. Programatik olarak tüm hücreleri seçmek veya seçimini kaldırmak için SelectAllCells veya UnselectAllCells yöntemlerini çağırın. Daha fazla bilgi için bkz. DataGrid Denetiminde Varsayılan Klavye ve Fare Davranışı.

Gruplandırma, sıralama ve filtreleme

Varsayılan olarak, sütun üst bilgisine tıklayarak içindeki DataGrid öğeleri sıralayabilirsiniz. Etkinliği işleyerek sıralamayı Sorting özelleştirebilirsiniz. Varsayılan sıralamayı iptal etmek için Handled özelliğini true olarak ayarlayın. Kaynak verileri, DataGrid içinde görüntülenmeden önce de sıralayabilirsiniz.

DataGrid içindeki verileri gruplandırmak, sıralamak ve filtrelemek için DataGrid öğesini bu işlemleri destekleyen bir ICollectionView uygulamasına bağlarsınız. Ardından işlemleri koleksiyon görünümünde gerçekleştirirsiniz. öğeleri içinde DataGridgruplandırıldığında, her grubun görünümünü belirten bir GroupStyle tanımlayabilirsiniz. Öğeyi, GroupStyle'yi GroupStyle koleksiyonuna ekleyerek DataGrid uygularsınız. Birden çok gruplandırma düzeyiniz varsa, her grup düzeyine farklı stiller uygulayabilirsiniz. Stiller tanımlanma sırasına göre uygulanır. Daha fazla bilgi için bkz . Nasıl yapılır: DataGrid Denetiminde Verileri Gruplandırma, Sıralama ve Filtreleme.

Validation

hem DataGrid hücre hem de satır düzeyinde doğrulama gerçekleştirmenizi sağlar. Hücre düzeyi doğrulama ile, kullanıcı bir değeri güncelleştirdiğinde ilişkili veri nesnesinin tek tek özelliklerini doğrularsınız. Satır düzeyi doğrulama ile, kullanıcı bir satıra değişiklikleri işlediğinde veri nesnelerinin tamamını doğrularsınız. Özelliği ayarlayarak RowValidationErrorTemplate satır düzeyi doğrulama hataları için özelleştirilmiş görsel geri bildirim sağlayabilir veya varsayılan hata göstergesini kullanabilirsiniz. Özel doğrulama kuralı oluşturmak için ValidationRule sınıfından türetilen bir sınıf oluşturun ve Validate yöntemini uygulayın. Özel doğrulama kuralını koleksiyona RowValidationRules ekleyin.

Genel görevler

Aşağıdaki tabloda, DataGrid için bazı yaygın görevler ve bunları nasıl gerçekleştirecekleri listelenmiştir. İlgili API'yi görüntüleyerek daha fazla bilgi ve örnek kod bulabilirsiniz.

Senaryo Yaklaşım
Arka plan renklerini değiştirme AlternationCount özelliğini 2 veya daha fazla olarak ayarlayın ve ardından Brush ve RowBackground özelliklerine bir AlternatingRowBackground atayın.
Hücre ve satır seçimi davranışını tanımlama SelectionMode ve SelectionUnit özelliklerini ayarlayın.
Üst bilgilerin, hücrelerin ve satırların görsel görünümünü özelleştirme Style, ColumnHeaderStyle, RowHeaderStyleveya CellStyle özelliklerine yeni bir RowStyle uygulayın.
Boyutlandırma seçeneklerini ayarlama Height, MaxHeight, MinHeight, Width, MaxWidthveya MinWidth özelliklerini ayarlayın. Daha fazla bilgi için bkz. DataGrid DenetimiBoyutlandırma Seçenekleri.
Seçili öğelere erişme Seçili hücreleri almak için SelectedCells özelliğini ve seçili satırları almak için SelectedItems özelliğini denetleyin. Daha fazla bilgi için bkz. SelectedCells.
Son kullanıcı etkileşimlerini özelleştirme CanUserAddRows, CanUserDeleteRows, CanUserReorderColumns, CanUserResizeColumns, CanUserResizeRowsve CanUserSortColumns özelliklerini ayarlayın.
Otomatik oluşturulan sütunları iptal etme veya değiştirme AutoGeneratingColumn olayını işle.
Sütunu dondur FrozenColumnCount özelliğini 1 olarak ayarlayın ve DisplayIndex özelliğini 0 olarak ayarlayarak sütunu en soldaki konuma taşıyın.
Veri kaynağı olarak XML verilerini kullanma ItemsSource'ı, DataGrid üzerindeki öğe koleksiyonunu temsil eden XPath sorgusuna bağlayın. DataGridiçindeki her sütunu oluşturun. Öğe kaynağındaki özelliği alan sorguya bağlamadaki XPath'i ayarlayarak her sütunu bağlayın. Bir örnek için bkz. DataGridTextColumn.
Başlık Açıklama
DataGrid Öğeleri , ve DataGriddahil olmak üzere DataGridCellDataGridRowDataGridRowHeaderDataGridColumnHeaderöğesini oluşturan DataGridColumnHeadersPresenteröğe türlerini açıklar.
İzlenecek Yol: SQL Server Veritabanındaki Verileri DataGrid Denetiminde Görüntüleme Yeni bir WPF projesi ayarlamayı, Entity Framework Öğesi eklemeyi, kaynağı ayarlamayı ve verileri bir DataGridiçinde görüntülemeyi açıklar.
Nasıl yapılır: DataGrid Denetimine Satır Ayrıntıları Ekleme DataGridiçin satır ayrıntılarının nasıl oluşturulacağını açıklar.
Nasıl yapılır: DataGrid Kontrolü ile Doğrulama uygulamak DataGrid hücre ve satırlardaki değerleri doğrulamayı ve doğrulama geri bildirimini görüntülemeyi açıklar.
DataGrid Denetimi Varsayılan Klavye ve Fare Davranışı Klavye ve fare kullanarak DataGrid denetimiyle nasıl etkileşim kuracaklarını açıklar.
Nasıl yapılır: DataGrid Denetiminde Verileri Gruplandırma, Sıralama ve Filtreleme Verileri gruplandırarak, sıralayarak ve filtreleyerek DataGrid verileri farklı şekillerde görüntülemeyi açıklar.
DataGrid Denetimi'ndeki Boyutlandırma Seçenekleri DataGridiçinde mutlak ve otomatik boyutlandırmayı denetlemeyi açıklar.

DataGrid'i Özelleştirme

Denetim, DataGrid satır arka planlarını değiştirme ve üst bilgileri, kılavuz çizgilerini ve kaydırma çubuklarını gösterme veya gizleme gibi yaygın tablo biçimlendirme seçeneklerini destekler. Ayrıca, denetim, denetimin görünümünü ve satırlarını, sütunlarını, üst bilgilerini ve hücrelerini tamamen değiştirmek için kullanabileceğiniz çeşitli stil ve şablon özellikleri sağlar.

Davranışı özelleştirmek DataGrid için seçim değişikliği, hücre düzenleme ve sütun yeniden sıralama olaylarını işleyebilirsiniz. DataGrid, satırları özelleştirmek için işleyebileceğiniz çeşitli satır geri dönüşümü olaylarını da kullanıma sunar.

Aynı özellik ayarlarını birden çok DataGrid denetime uygulamak için Style özelliğini kullanın. Denetime benzersiz bir görünüm vermek için varsayılanı ControlTemplate değiştirebilirsiniz. Daha fazla bilgi için ControlTemplate oluşturma kısmına bakın; bkz. Denetim için bir şablon oluşturma.

Bu denetimin bağımlılık özellikleri, denetimin varsayılan stiline göre ayarlanabilir. Bir özellik varsayılan stile göre ayarlanırsa, denetim uygulamada göründüğünde özellik varsayılan değerinden değişebilir. Varsayılan stil, uygulama çalışırken hangi masaüstü temasının kullanıldığına göre belirlenir.

Uyarı

Görsel özelliğin ayarlanması, yalnızca bu özelliğin hem denetimin varsayılan şablonunda mevcut olması hem de TemplateBinding kullanılarak ayarlanması durumunda etkili olur.

Stiller ve şablonlar

Bu bölümde DataGrid denetim için stiller ve şablonlar açıklanmaktadır. Denetime benzersiz bir görünüm vermek için varsayılanı ControlTemplate değiştirebilirsiniz. Daha fazla bilgi için bkz. Stil Oluşturma ve Şablon Oluşturma ve Denetim için şablon oluşturma.

İçerik özelliği

Denetim, veri kaynağını tanımlamak için DataGrid özelliğini kullanır. Veri kaynağı veritabanı, LINQ sorgusu veya başka bir bağlanabilir veri kaynağı gibi herhangi bir bağlanabilir koleksiyon olabilir.

Parçalar

Bu denetim herhangi bir şablon parçası tanımlamaz.

Görsel durumlar

Aşağıdaki tabloda denetimin görsel durumları listelenmiştir DataGrid .

VisualState Adı VisualStateGroup Adı Açıklama
Sıradan OrtakDurumlar Kontrol normal durumda.
Disabled OrtakDurumlar Denetim devre dışı bırakıldı.
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ı Kontrolde bir doğrulama hatası var ancak klavye odağı yok.

DataGrid öğe türleri

Denetim DataGrid birkaç öğe türünden oluşur. Bu öğeler ve bunların stilleri ve şablonları hakkında bilgi için bkz. DataGrid Öğeleri.

Ayrıca bakınız