Bu örneğimizde WPF form da oluşturduğumuz veri bağlantısı sonucunda DatGrid’ de verileri listelemeyi ve Data Template kullanarak her kayıt için eklediğimiz buttonlar ile LINQ kullanarak kayıt silmeyi gerçekleştireceğiz… Örneğimizde “personel” isimli veritabanını ve “kisiler” tablosunu kullanacağız.
Veritabnımızı oluşturduktan sonra boş bir WPF projesi açıyoruz. Projemize veritabanını aşağıdaki adımları takip ederek ekliyoruz.
1.Adım: Solution Explorer Proje üzerinde sağ tıklayarak Add-New Item diyoruz.
2.Adım: Açılan pencerede LINQ to SQL Classes seçip Add diyoruz.
3.Adım: Server Explorer penceresinde veritabanımızı bulup tablomuzu sağ tarafa sürükle-bırak yöntemiyle taşıyoruz.
Form tasarımını aşağıdaki şekilde oluşturuyoruz.
XAML kodları aşağıdaki gibi olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<Window x:Class="datagridbutonsil.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded"> <Grid> <DataGrid x:Name="dgpersonel" Height="190" AutoGenerateColumns="False" ColumnWidth="*" Margin="10,27,50,102"> <DataGrid.Columns> <DataGridTextColumn x:Name="txtno" Binding="{Binding no}" Header="Numara"/> <DataGridTextColumn x:Name="txtad" Binding="{Binding ad}" Header="Adı"/> <DataGridTextColumn x:Name="txtsoyad" Binding="{Binding soyad}" Header="Soyadı"/> <DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <DatePicker SelectedDate="{Binding dogumtarih}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Content="SİL" x:Name="btnsil" Click="btnsil_Click" Width="60" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> </Window> |
C# kodları :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace datagridbutonsil { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } DataClasses1DataContext context = new DataClasses1DataContext(); private void btnsil_Click(object sender, RoutedEventArgs e) { int secilenid = (dgpersonel.SelectedItem as kisiler).no; kisiler kisi = (from a in context.kisilers where a.no == secilenid select a).SingleOrDefault(); context.kisilers.DeleteOnSubmit(kisi); context.SubmitChanges(); dgpersonel.ItemsSource = context.kisilers.ToList(); } private void Window_Loaded(object sender, RoutedEventArgs e) { dgpersonel.ItemsSource = context.kisilers.ToList(); } } } |
Programımızı çalıştırdığımızda ekran görüntüsü:
Bu örneğe bakarak bende datagrid’e combobox ekledim. comboboxa da iki tane item ekledim. Fakat datagridi güncelleme işlemini bir türlü gerçekleştiremedim. Yardımcı olursanız sevinirim.