20 Mar 2009 Silverlight 3 Beta – Kontrollerin Birbirine Bağlanması Kategori: Silverlight Etiketler: Silverlight 3 BetaSilverlight 1 Yorum Merhaba arkadaşlar, bu makalemizde Silverlight 3 Beta ile birlikte gelen Silverlight UIElementlerin birbirine nasıl bağlandığını (UI Element to Element Binding) inceliyor olacağız. Silverlight 3 beta ile birlikte kontrolleri ve özelliklerini birbirine bağlayabiliyoruz. WPF içerisinde bu özellik olmasına rağmen Silverlight için yepyeni bir özelliktir. Bu özellik ile birlikte eventler arasında dolaşıp kod yazmadan kontrolleri ve özelliklerini birbirine bağlayabileceğiz. Örneğin, ComoBox’dan seçim yapıldığında seçilen değeri TextBlock kontrolünün Text özelliğine bağlayabiliriz. Geriye gidip daha önce bu işi nasıl yaptığımızı hatırlayalım.Yeni bir Silverlight projesi oluşturalım. Formumuza bir ComboBox ve bir tane de TextBlock kontrolü ekleyelim. [XAML]<UserControl x:Class="Silverlight3ElementToElement.MainPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"><Canvas x:Name="LayoutRoot"Background="White" ><TextBlock x:Name="tbTakim" Width="150" Canvas.Left="15" Canvas.Top="10"></TextBlock><ComboBox x:Name="cmbTakimlar" Width="150" Canvas.Top="30" Canvas.Left="10"> </ComboBox></Canvas></UserControl> ComboBox’dan bir seçim yaptığımızda çalışan SelectionChanged isimli bir event var. Bu event de ComboBox’dan seçtiğimiz değeri TextBlock’un Text özelliğine atayabiliriz. İlk olarak UserControl için Loaded Event Listener’ini oluşturup ComboBox’a eleman ekleyelim. Daha sonra da atama işlemini yapacağomız SelectionChanged event listenerini oluşturalım.[C#]publicMainPage(){InitializeComponent();// Event Listenerları oluşturalım.this.Loaded += new RoutedEventHandler(MainPage_Loaded);cmbTakimlar.SelectionChanged += new SelectionChangedEventHandler(cmbTakimlar_SelectionChanged);}void MainPage_Loaded(object sender, RoutedEventArgs e){// Listbox’a eleman ekliyelimcmbTakimlar.Items.Add("Fenerbahçe");cmbTakimlar.Items.Add("Galatasaray");cmbTakimlar.Items.Add("Beşiktaş");cmbTakimlar.Items.Add("Trabzon Spor");} void cmbTakimlar_SelectionChanged(object sender, SelectionChangedEventArgs e){// Atama işlemini yapalım.tbTakim.Text = cmbTakimlar.SelectedItem.ToString(); } Eskiden bu şekilde kod yazarak kontrolleri ve özelliklerini birbirine bağlayabiliyorduk. Silverlight 3 Beta ile birlikte artık kontrolleri birbirine bağlamak çok daha kolay. [Kullanımı]<UIElement Text="{Binding BağlanacakÖzellik, ElementName=BağlanacakKontrol}"></UIElement > Şimdi yukarıda event listener ile yaptığımız bağlama işlemini Silverlight 3 Beta ile gelen yeni özellik ile yapalım. [XAML]<UserControlx:Class="Silverlight3ElementToElement.MainPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"><Canvas x:Name="LayoutRoot" Background="White" >// TextBlock kontrolünün Text özelliği ile ComoBox kontrolünün SelectedItem özelliğini birbirine bağladık. ComboBox’ın SelectedItem özelliği ne ise TextBlock kontrolünün Text özelliği de o olacak.<TextBlock x:Name="tbTakim" Width="150" Canvas.Left="15" Canvas.Top="10" Text="{Binding SelectedItem,ElementName=cmbTakimlar}"></TextBlock><ComboBox x:Name="cmbTakimlar" Width="150"Canvas.Top="30" Canvas.Left="10"> </ComboBox></Canvas></UserControl> Hiç kod yazmadan kontrolleri birbirine bağladık :) Bu makalenin de sonuna geldik başka bir makale de görüşmek üzere. Silverlight ile kalın ;) Sem GÖKSU www.semgoksu.com | www.yazilimgunlugu.com sem.goksu@yazilimgunlugu.com Kaynaklar msdn.com silverlight.net Yorum (1) erkan karakuş / 3.6.2016 12:17:28 merhaba, combobox a verileri veritabanından çekiyorum ve textbox veya textblock ta göstermem gerek. örnekte ki gibi yaptım ama olmuyor. veritabanının yolunu gösteriyor. hata nerde? nasıl düzeltebilirim? Yorum Yaz * Ad Soyad: * Email: * Message:
Yorum (1) erkan karakuş / 3.6.2016 12:17:28 merhaba, combobox a verileri veritabanından çekiyorum ve textbox veya textblock ta göstermem gerek. örnekte ki gibi yaptım ama olmuyor. veritabanının yolunu gösteriyor. hata nerde? nasıl düzeltebilirim?
erkan karakuş / 3.6.2016 12:17:28 merhaba, combobox a verileri veritabanından çekiyorum ve textbox veya textblock ta göstermem gerek. örnekte ki gibi yaptım ama olmuyor. veritabanının yolunu gösteriyor. hata nerde? nasıl düzeltebilirim?