C#nedir?com
 
YAZAR HAKKINDA
Turhal Temizer
Turhal Temizer
http://www.turhaltemizer.com
İletişme geçmek için tıklayın.
92 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: Controls Data DataGrid Foundation List ListItem Presentation Temizer Toolbox Turhal Turhal Temizer Windows Windows Presentation Foundation WPF .NET 3.x Turhal Temizer
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : .NET 3.x
Yayınlanma Tarihi : 18.10.2009
Okunma Sayısı : 13520
Yorum Sayısı : 4     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
ChatBot UI Sample 15.12.2017
Turhal Temizer 'in Blogu
C# – IRR Function 15.12.2017
Burak Selim Şenyurt
JWT(JSON Web Token) Kullanımı 15.12.2017
Burak Selim Şenyurt
Apache Kafka ile Konuşmaya Çalışmak 15.12.2017
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
WPF 4.0 - DataGrid
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
.Net Framework 4.0 'ın çıkışının yaklaşması ile WPF içerisinde de değişiklikler daha da ön plana çıkmaya başlamıştır. Özellikle bileşen paneli içerisinde oluşan gelişmeler gözlerden kaçmamaktadır. Tabii bu gelişimde WPF Control toolkitin de katkısını unutmamak gerekmektedir. Bu gelişmeler sonrası gelen en büyük yeniliklerden birisi de DataGrid kontrolüdür.

Veri tabanı ilişkisi olan ve liste şeklinde veri gösterilmesi gerektiği durumlarda en sık olarak kullanılan kontrollerin başında gelmektedir DataGrid kontrolü. Bazen yalnızca verileri gösterirken bazende DataGrid üzerinde kayıt silme, güncelleme ve yeni ekleme işlemleri de yapılabilmektedir. DataGrid kullanmanın kolaylıklarını ve avantajlarını tekrardan anlatmayacağız. Zaten yıllardır .Net programcılarının en sık kullandığı kontroldür. Ancak bu avantajlı durum Windows Presentation Foundation ile yeni nesil form ile uygulama geliştirmek isteyen yazılımcılarda durum biraz daha farklı oluyordu. Çünkü .Net 3.5 sonrasında gerçek anlamıyla kullanmaya başlayabildiğimiz WPF Control Toolkit yardımı ile DataGrid kontrolünü kullanabiliyorduk. Ama .Net Framework bünyesinde maalesef DataGrid kontrolü yer almıyodu. Özellikle eski adı WPF/E Silverlight teknolojisinde DataGrid kontrolünün daha önceden eklenmiş olması web uygulamalarında rahatlıkla bu kontrol kullanılırken neden windows form uygulamalarında kullanılamıyor şeklinde akıllara soru işaretleri doğuruyordu. Tabii ki hiçte kullanılamıyor da değildi. Biraz çaba sonrasında kendi DataGrid user controlümüzü oluşturup bunu kullanabiliyorduk. Ya da 3. parti bileşen geliştiren firmaların ürünlerinden yararlanarakta DataGrid kontrolü kullanabilmemiz mümkündü ve mümkün olacaktır. Fakat biz bu yazımızda .Net Framework 4.0 'ın içerisinde bulunacak olan WPF DataGrid kontrolünü incelemeye çalışıyor olacağız.

Not: Yazımızı Visual Studio 2010 Beta1 ve .Net Framework 4.0 Beta1 sürümleri ile geliştirmekte ve anlatmaktayız. Zaman içerisinde kullanım ve yazım standartı konusunda bir değişiklik olabilme ihtimali bulunmaktadır. Bilginize...

DataGrid kullanımı örnek üzerinde incelemeye çalışacağız. İlk olarak VS2010 Beta1 ile WPF projesi oluşturuyoruz. Sonrasında ise toolkit bölümüne bakarak DataGrid kontrolünü ve diğer bir çok kontrolü görebilmek mümkündür. Bizim yararlanacak olduğumuz DataGrid kontrolü olduğu için Controls seçeneği altında yer alan kontrollere göz atıyoruz.



Kontrolü form üzerine sürüklediğimizde XAML kod tarafında <DataGrid /> kod parçacığının eklendiğini gözlemleriz. DataGrid kontrolünün özellikleri arasında Name,Width,Height,HorizontalAligment,Margin ve diğer bir çoğu yer almaktadır.

Hazılayacak olduğumuz örnek için formun üzerine bir tane DataGrid kontrol sürükleyip bırakıyoruz. Sonrasında ise XAML tarafına aşağıdaki kod parçası eklenecektir.

Windows1.xaml
<DataGrid Height="100" HorizontalAlignment="Left" Margin="28,32,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="200" />

Visual Studio üzerindeki görüntüsü ise aşağıdaki gibi olacaktır.



DataGrid içerisinde gösterecek olduğumuz verileri oluşturmaya başlayalım. Bu işlem için bir tane kullanıcı sınıfı oluşturacağız ve sonrasında oluşturmuş olduğumuz elemanlara lis yardımı ile veri ekleyerek grdi içerisinde göstereceğiz.

WPF uygulamasına bir tane Users isimli sınıf ekliyor ve içerisine aşağıdaki kod parçasını ekliyoruz.

Users.cs
using System;

namespace DataGridKullanimi
{
    public class Users
    {
        public int UserID { get; set; }
        public string CurrentName { get; set; }
        public string CurrentSurname { get; set; }
        public DateTime BirthDay { get; set; }
        public bool IsActive { get; set; }
    }
}

Kullanıcılar sınıfını oluşturduğumuza göre şimdi de kullanıcılar verisini bir listeye dolduralım.

Window1.xaml.cs
private List<Users> LoadGrid()
{
    List<Users> users = new List<Users>();
    users.Add(new Users()
    {
        UserID = 1,
        CurrentName = "a",
        CurrentSurname = "b",
        BirthDay = new DateTime(2000, 12, 11),
        IsActive = false
    });
    users.Add(new Users()
    {
        UserID = 2,
        CurrentName = "aa",
        CurrentSurname = "bb",
        BirthDay = new DateTime(1987, 12, 11),
        IsActive = true
    });
    users.Add(new Users()
    {
        UserID = 4,
        CurrentName = "aya",
        CurrentSurname = "baya",
        BirthDay = new DateTime(1960, 12, 11),
        IsActive = true
    });
    return users;
}

Kullanıcı bilgilerini listeye doldurduktan sonra artık DataGrid içerisinde kullanabiliriz. DataGrid içerisinde veriyi ItemsSource özelliği yardımı ile alıyoruz.

Bu işlem için ise,

dataGrid1.ItemsSource = LoadGrid();

kod blogunu kullanmak yeterli olacaktır. Bu işlem sonrasında projemizi çalıştırdığımız karşımıza istediğimiz gibi bir sonuç çıkacaktır.



Grid içerisinde görülecek olan verilerin satır ve sütunların boyutlarının ayarlanabilinmesi mümkündür.

Window1.xmal
XX<DataGrid Height="200" HorizontalAlignment="Left" Margin="28,32,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="400" RowHeight="30" ColumnWidth="40"/>ZZ



Sabit olarak satır ve sütun özellikleri verebilmekle birlikte, en çok ve en az olabilecek boyutlarıda kullanabilmemiz mümkündür.

Grid üzerinde yer alan kolonların yatay, dikey, tamamen gibi çizgilerinin görünülebilirliklerinin ayarlanabilmesi mümkündür. Örneğin bizde grid üzerinde yer alan kolonların dikey çizgilerinin görünürlüğünü yok edelim.

Bu işlem için; GirdLinesVisibility="Vertical" özelliğini kullanmak yeterli olacaktır. Peki yapmış olduğumuz bu değişiklik sonrasında ne gibi bir ekran görüntüsüne sahip olacağız.


Grid üzerinde yapabileceğimiz işlemleri incelemeye devam ediyoruz. DataGrid içerisinde yer alan kolonlara hem bütün arkaplan için hemde satır bazlı olarak renklendirilebilmesi mümkündür.

Bu işlem için XAML kod bölümünde DataGrid in özelliklerine Background, RowBackground ve AlternatingBackground özelliklerine değerler vermemiz yeterli olacaktır.

Background="LightGray" RowBackground="LightYellow" AlternatingBackground="LightBlue"


DataGrid kullanırken arka planda aslında bir grid 'in içerisinde hazırlanmış olan bir kontrol olduğunu unutmamak gerekiyor. Bu durumda da dış kenarlıklarına hem renk hem de kalınlık verebilmemiz mümkündür. Kullanmamız gereken özellikler BorderBrush ve BorderThickness olacaktır.

XAML kod bölümünde yer alan DataGrid kontrolünün özelliklerine; BorderBrush="Red" BorderThickness="5" özelliklerini vermemiz yeterli olacaktır.



Grid içerisinde yer alan satırların ve kolonların yalnızca okunabilir olmasını istersek IsReadOnly özelliğine True değerini vermemiz yeterli olacaktır. Kullanılabiliecek bir diğer özelilk ise satırların sabit kalmasıdır. Freeze özelliği olarak bilinen bu özellikten yararlanabilmek için ilk olarak özelliği aktifleştirmek sonrasında da hangi kolondan itibaren kullanılacağınu belirtmek yeterli olacaktır. AreRowDetailsFrozen="True" FrozenColumnCount="2" şeklinde kullanılmaktadır.

Kullanabileceğimiz özellikleri incelemeye devam ediyoruz. Şimdi değinecek olduğumuz özellik ise satırların yeniden düzenlenebilirliği ve yeniden boyutlanabilirlidir. Bu iki özellik sabit bir tasarım sunmak istenildiğinde çok sık kullanılabilmektedir. CanUserReoderColumns="False" CanUserResizeColumns="False" şeklinde kullanılabilmektedir.

Sıralama, hem web uygulamalarında hem de windows uygulamalarında kullanılan DataGrid ler de en sık kullanılan özelliklerden birisidir. Bu özellike WPF DataGrid içerisinde de kullanılabilmesi mümküdür. CanUserSortColumns özelliğini kullanarak sıralama işleminin gerçekleşebilmesi mümkündür. True ve False değerlerini alabilmektedir. Bizim hazırlamış olduğumuz uygulamada kullanılmasını istemediğimiz için False özelliğini veriyoruz.

DataGrid kontrolünün değineceğimiz son özelliği ise Scroll olacaktır. Hazırlanan WPF Form içerisinde yer alan DataGrid kontrolünün içerisinde yer alan verilerin sayısının kontolün genişlik ve yükseklik değerlerinin üzerine çıkması durumunda scroll 'un çıkıp çıkmamasıdır. Kullanımı, HorizantalScrollBarVisibility ve VerticalScrollBarVisibility şeklindedir.

Anlatmış olduğumuz özellikleri de DataGrid kontrolüne ekledikten sonra karşımıza çıkan son ekran görüntüsü aşağıdaki gibi olacaktır.



Belirtmiş olduğumuz bütün özelliklerin sorunsuzca çalıştığı gözlemlenmektedir.

Sonuç olarak yazımızda WPF DataGrid kontrolünün ne işe yaradığını, ne amaçlarla kullanıldığını ve özelleştirmek istediğimizde ne tür özellikleri kullanabileceğimizi detaylı bir biçimde açıklamaya çalıştık. Tekrardan hatırtılması gereken konu ise, bu uygulama VS2010 Beta1 ve .Net FW 4.0 Beta1 sürümleri ile geliştirildi. Gelecekte çıkacak sürümlerinde değişiklik olabilme ihtimali yer almaktadır.

Herkese iyi çalışmalar diliyorum.

Umarım yararlı olabilmiştir.

Turhal Temizer
turhal.temizer@csharpnedir.com
http://turhal.blogspot.com
Makale:
WPF 4.0 - DataGrid .NET 3.0 ve .NET 3.5 Özel Bölümü Turhal Temizer
  • Yazılan Yorumlar
  • Yorum Yaz
ARA
19
2011
merhaba yaklaşık 3 gündür arıyorum bulamıyorum bi yardım edebilirseniz çok sevineceğim yukarıdaki örnekte mesela, doğum tarihlerini nasıl tr formatında yazdırabilirim? ayrıca parasal işlemlerde de en-EN formatında yazıyor tr formatlarını wpf ile nasıl uygulayabilirim? Teşekkürler
EKİ
20
2009
Yok bende windows 7 de kullandım ama dün akşam beta 2 yi yükleyince fark kendini belli etti. iyileştirmeler var. WPF ;) Bir türlü ısınamadım.
EKİ
19
2009
Tool un tekrardan hazırlandığını düşünürsek biraz yavaşlık olması normal bir durum. Ben de Win. Vista ile çalışırken zorluk yaşıyordum. Ancak Win. 7 'e geçtikten sonra biraz daha iyi performans almaya başladım. Ancak yine de RTM sürüme yakın sürümlere kadar çıkacak versiyonlar da bu tür sorunlar ile karşılaşabilmemiz normaldir. Asp.Net 'in yeri bambaşka tabii ki ancak WPF 'i de kullanmak ve avantajlarından yararlanmak bizlere çok iyi avanjlar sağlayacaktır... :)
EKİ
19
2009
VS 2010 çok kasılıyor beta 2 yada rtm sürümü çıkmadıkça bir daha bulaşmayacağım. WPF değilde asp.net çok ilgimi çeken kısım ;) Teşekkürler Turhal eline sağlık.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor