Bu yazımızda WPF Formda Binding işlemi ile ilgili basit bir örnek gerçekleştireceğiz. Örneğimizde DataGrid’ de Class ve List kullanarak bazı kayıtlar listeleyeceğiz. Daha sonra XAML tarafında Datagrid’de seçilen satırın ilgili Textbox kontrolünde Binding edilerek gösterilmesini sağlayacağız. Örneğimize geçelim.
Örneğimize ait XAML kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <Window x:Class="datagridbindingtextbox.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="www.yazilimkodlama.com" Height="350" Width="525" Loaded="Window_Loaded"> <Grid > <Label Content="Adı" Margin="98,24,346,263" /> <Label Content="Soyadı" Margin="98,61,346,225" /> <TextBox Text="{Binding ElementName=dg1, Path=SelectedItem.AD}" Margin="176,24,144,263"/> <TextBox Text="{Binding ElementName=dg1, Path=SelectedItem.SOYAD}" Margin="176,61,144,225" /> <DataGrid Name="dg1" Grid.Column="0" AutoGenerateColumns="False" Margin="10,124,10,10"> <DataGrid.Columns> <DataGridTextColumn Header="AD" Width="*" Binding="{Binding AD}"/> <DataGridTextColumn Header="SOYAD" Width="*" Binding="{Binding SOYAD}"/> </DataGrid.Columns> </DataGrid> </Grid> </Window> |
XAML kodlarını incelediğimizde Textbox’ların Text özelliğine DataGrid’ de seçili olan satırların Binding edildiğini görüyoruz.
DataGrid sütunlarımızın ise aşağıda verilen C# kodlarını incelediğimizde görüleceği üzere List öğemize bağlanıyor.
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 47 48 49 50 51 52 53 54 | 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 datagridbindingtextbox { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { List<OgrenciListe> list; public MainWindow() { InitializeComponent(); list = new List<OgrenciListe>() { new OgrenciListe(){ AD="AHMET", SOYAD="CANSEVER"}, list' e ekleme new OgrenciListe(){ AD="ALİ", SOYAD="ER"}, new OgrenciListe(){ AD="YUSUF", SOYAD="KOÇ"}, new OgrenciListe(){ AD="AYŞE", SOYAD="SAYGIN"}, }; OgrenciListe lst = new OgrenciListe(); //Diğer ekleme yöntemi. lst.AD = "SALİM"; lst.SOYAD = "USLU"; list.Add(lst); } public class OgrenciListe //Class yapımız { public string AD { get; set; } public string SOYAD { get; set; } } private void Window_Loaded(object sender, RoutedEventArgs e) { dg1.ItemsSource = list; } } } |
evet Textbox da olduğu gibi comboboxda da gelmesini istiyorum.
Aynı örnek üzerinde bir adet cmb1 adında combobox ekleyip aşağıdaki satırları uygulayabilirsiniz.
ComboBox Name=”cmb1″ HorizontalAlignment=”Left” Margin=”326,24,0,0″ VerticalAlignment=”Top”
ItemsSource=”{Binding list}” DisplayMemberPath=”AD” Text=”{Binding ElementName=dg1, Path=SelectedItem.AD}”
Width=”161″ Height=”32″
Bir de; Window Loaded kısmına
cmb1.ItemsSource = list;
eklerseniz form yüklendiğinde isimler otomatik olarak combobox’a yüklenecek ve Datagridde seçili satıra göre ilgili veri gelecektir..
teşekkür ederim.
WPF Form da comboBox – DataGrid Binding Örneğinide yaparmısınız. yapabiliciğim bir kaynak gösterirmisiniz.
şimdiden teşekkür ederim.
Yapmak istediğiniz şey tam olarak nedir? Datagridde sütuna tıklandığında ilgili değerin gelmesini mi istiyorsunuz?