WPF ObservableCollection Kullanımı

  • Konbuyu başlatan Rooster
  • Başlangıç tarihi
  • Cevaplar: 0
  • Görüntüleme: 429

Rooster

only business
Legend Member
Katılım
10 Ağu 2019
Konular
727
Mesajlar
3,205
Çözümler
314
Tepkime puanı
4,990
Konum
Milano
Wpf Formda ObservableCollection kullanarak Listbox‘ ta elemanları listeleme, ekleme ve silme işlemi ile ilgili örnek uygulamaya geçmeden önce ObservableCollection’ un ne olduğuna bakalım.
ObservableCollection, System.Collections.ObjectModel namespace’i altında bulunan özel bir koleksiyon sınıfıdır.

WPF, Windows Store ve Windows Phone uygulamalarında veri kaynağında oluşan değişiklikleri arayüze (UI) bildirme amaçlı kullanılır. Diğer List Collectionlarına göre avantajı veri listelediğimiz herhangi bir sayfada veri kaynağında değişme olduğunda bir refresh ihtiyacı olmadan bu değişiklikleri ListBox, LongListSelector gibi kontrollere bildirir ve değişiklikler gerçekleşir. ListBox veya LongListSelector’ı yenilemek için kod yazma ihtiyacı ortadan kalkar.


Örneğimizi inceleyelim.
observable_1

Kod:
<Grid>
        <ListBox Name="lst1" HorizontalAlignment="Left" Height="246" Margin="43,35,0,0" VerticalAlignment="Top" Width="160"/>
        <TextBox Name="txt1" HorizontalAlignment="Left" Height="35" Margin="279,34,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="164"/>
        <Button Content="EKLE" HorizontalAlignment="Left" Margin="279,89,0,0" VerticalAlignment="Top" Width="164" Height="27" Click="Button_Click"/>
        <Button Content="SİL" HorizontalAlignment="Left" Height="28" Margin="279,124,0,0" VerticalAlignment="Top" Width="164" Click="Button_Click_1"/>
 
    </Grid>
C# kodlarını incelediğimizde ve uygulamamızı çalıştırdığımızda ObservableCollection üzerinde herhangi bir değişiklik meydana geldiği zaman herhangi bir işleme gerek kalmadan listbox elemanlarının güncellendiğini göreceğiz.,
Kod:
using System.Collections.ObjectModel;
Kod:
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            kaynak = new ObservableCollection<string>();
            kaynak.Add("Ali");
            kaynak.Add("Ahmet");
            kaynak.Add("Mehmet");
            kaynak.Add("Ayşe");
 
            lst1.ItemsSource = kaynak;
        }
        ObservableCollection<string> kaynak;
 
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            kaynak.Add(txt1.Text);
        }
 
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            kaynak.RemoveAt(lst1.SelectedIndex);
            
        }
    }
 

Üst