Dependency Property

by Suat TUNCER 28. March 2009 11:26

Merhabalar,

Son zamanlarda "Dependency Property" çok fazla kullanmaya başladım ve bu zamana kadar kullanmadığım için kızdım kendime. Özellikle WPF ile birlikte bir nesnenin hemen hemen bütün özellikleri "Dependency Property" olarak tanımlandığı için ve bazı özel noktalarda eventlara ihtiyaç duyduğumuzda imdadımıza yetişmektedirler. Aşağıya basit bir kod örneği ekliyeyim de tam olsun.

    private void Page_Loaded(object sender, RoutedEventArgs e)
    {
        DependencyPropertyDescriptor dc; // bizim için bağlamayı çekecek olan nesne ;-)
        dc = DependencyPropertyDescriptor.FromProperty(
            Button.IsMouseOverProperty, // durumuna bağlanmak istediğimiz özellik
            typeof(Button));            // bağlama çekilecek tip

        dc.AddValueChanged(             // nesne ve method ilişkilendiriliyor
            button1,                    // IsMouseOver özelliği kullanılacak nesne
            Button_MouseOver);          // IsMouseOver özelliği değiştiğine çalışacak method
    }


    void Button_MouseOver(object sender, EventArgs e)
    {
        /*
           method tetiklendiğinde eğer;
           IsMouseOver true ise arkaplan kırmızı yapılıyor
           IsMouseOver false ise arkaplan sarı yapılıyor.
        */

        Button senderButton = sender as Button;
        if (senderButton.IsMouseOver)
            senderButton.Background = Brushes.Red;
        else
            senderButton.Background = Brushes.Yellow;
        // böylece galatasaray selam gönderilmiş oluyor :-)
    }

istenirse foreach döngüsü kullanılarak, bir control collectionın tamamına da uygulanabilir.

i love .net

 

Tags: , ,

C#