‫Tekrar hoş geldiniz.
‫Bu videoda, bir özellik değiştirildiğinde bir şeyi tetiklememizi sağlayan bu arayüz hakkında, yani özellik değiştirildiğini
‫bildirme hakkında konuşacağız ve geçen videoda bağlama kullanırken özellik değiştirildiğini
‫görmüştük ve bu sefer biraz farklı yapacağız ve bu arayüzü nasıl kullanacağınızı
‫kendiniz göreceksiniz.
‫Bu yüzden bir ızgara yerine bir yığın paneli kullanmak istiyorum çünkü bir
‫şeyleri yığmak istiyorum ve her şeyden önce, içeriği bir numaraya ayarlayacağım bir etiket yığacağım ve bu etiketi
‫bu şekilde kapatacağım.
‫Ve bunun altında bir değer girebileceğimiz bir metin kutusu olmasını istiyorum.
‫Bu yüzden burada bir metin bloğu ya da metin kutusu kullanmayacağım.
‫Bu şekilde hemen kapatacağım.
‫Metin kutusunun genişliğinin 100 piksel, yüksekliğinin ise diyelim ki 30 piksel olmasını istiyorum.
‫Ve sonra metni ayarlamak istiyorum.
‫Şimdi metin bağlanmalıdır, bu yüzden burada veri bağlama kullanacağım.
‫Ve kullanmak istediğim yol bir numara olacak ve mod iki yönlü olacak.
‫Bu modun ne anlama geldiğini ve bu yolun ne anlama geldiğini gördük.
‫Şimdi bu kodu kopyalayalım ve burada çoğaltalım.
‫Bu yüzden iki kez kopyalayıp yapıştıracağım.
‫Yani burada hiçbir şey aynı olmayacak ve bu bir sonuç olacak.
‫Sonuç bu olacak ve bu da üç numara olacak.
‫Şimdi merak edebilirsiniz, bu bir numara nedir?
‫İki numara ve sonuç, çünkü elimizde bir numara ve iki numara var.
‫Ancak bunlar sadece içerik.
‫Onlar isim değil.
‫Dolayısıyla, bunlara bağlanmak veya bunları kullanmak için kodumuzun arkasına gitmemiz gerekiyor çünkü bunları burada oluşturmak
‫istiyorum.
‫Bu yüzden aslında yeni bir sınıf oluşturacağım, çünkü programımıza benzer şekilde ana pencereyi programımız olarak
‫kullanacağız.
‫Ancak I notify'ı değiştirmek istiyorum ve bu arayüzü kullanmak için ondan miras alabilecek yeni bir sınıf oluşturmam
‫gerekiyor.
‫Bu yüzden burada yeni bir sınıf kullanacağım ve ona some adını vereceğim çünkü yapmak istediğim şey örnek dosyamıza geri dönersek,
‫bu num one, num two ve number three'ye sahip olmak.
‫Ve istediğim şey, buraya bir değer ve oraya bir değer eklersem, alttaki değerin otomatik
‫olarak önceki ikisinin toplamı olması.
‫Tamam.
‫Bu yüzden bunun için yeni bir sınıf kullanacağım.
‫Ve bu sınıf I notify property changed'den miras almalıdır.
‫Peki ne yapmak için?
‫Bunu kullanmak için mülk değişikliğini bildiririm.
‫Sistem bileşeni modelini kullanmamız gerekiyor.
‫Bu yüzden sistem bileşeni modelini kullanacağım.
‫Şimdi arayüzümüzün yeşil olduğunu görebilirsiniz ki bu genellikle Visual Studio'daki arayüz
‫rengi olan açık yeşildir ve şimdi bu olası hataları düzeltebilirim.
‫Gördüğünüz gibi arayüzü uygulamam gerekiyor.
‫Ben de bunu yapacağım.
‫Ve gördüğünüz gibi, bu genel olayımız var, özellik değiştirildi, olay işleyici özelliği değiştirildi.
‫Ve şimdi bunu kullanmak için, bir özelliği alacak olan void on property changed adında özel bir yöntem oluşturmamız
‫gerekecek.
‫Ve benim durumumda, bu özellik bir dize olacak.
‫Ve önce özelliğin değişip değişmediğini kontrol etmek istiyorum, özellik boş değil, yani null'a eşit değil.
‫Çünkü eğer durum buysa, o zaman devam etmek ve mülkü aramak istiyorum.
‫Mülk değişti.
‫Bu nokta yeni özellik, özelliklere devredeceğim olay yaylarını değiştirdi.
‫Gördüğünüz gibi, özellik olay yaylarını değiştirdi.
‫Bir dize özellik adına ihtiyaç duyar.
‫Ve teslim etmek istediğim özellik adı, özelliğin kendisidir.
‫Özellik değişikliğinde bu özelliği çağıracağım ve buraya bir özellik gireceğim.
‫Tamam.
‫Bu yüzden bu özellik değişikliği olayını basitçe çağıracağız.
‫Ve şimdi, tüm bunları kullanabilmek için birkaç özelliğe sahip olmamız gerekiyor.
‫Ve ilk olarak özel alanlar oluşturarak başlayacağım.
‫Yani bir numaralı özel bir dize, ardından iki numaralı özel bir dize ve son olarak da sonuç adlı özel bir dize.
‫Ve şimdi tüm bunlar için özellikler oluşturuyorum.
‫Bu yüzden NUM bir adında bir özellik oluşturacağım.
‫Ve bu bir numaralı özellik standart olandan biraz farklı olmalıdır.
‫Bu yüzden bu temel get ve set'i kullanmayacağım, kendinden tanımlı bir tane kullanacağım, yani kendim bir tane tanımlayacağım
‫ve num one döndürmemeli, ama iyi döndürmeli, büyük harfli olanı değil, özelliği değil, aslında buradaki
‫bu alanı döndürmeli.
‫Bu yüzden adı Num One'a dönüş olarak değiştirilecek.
‫O zaman bir numarayı geri ver.
‫Ve eğer bir şey ayarlarsam, o zaman değeri ayarlamak istiyorum.
‫Bu arada, burada en üstte string kullanıyorum, bu yüzden özelliğim de strings olmalıdır.
‫Bu yüzden numuneyi iade edeceğim.
‫Ve şimdi birisi bir rakamını ayarlamaya çalışırsa, bunu ayrıştırmaya çalışmak istiyorum çünkü ya kullanıcının girdiği bir rakam
‫değilse?
‫Ya mektupları ya da onun gibi bir şeyi girdiyse?
‫O zaman bunu yakalamak ve değiştirmek istiyorum.
‫INT sayısını kullanacağım ve burada yeni bir boo oluşturacağım, sonuç int olacak,
‫parse etmeyi deneyeceğim ve değeri parse etmeye çalışacağım ve sayıyı elde edeceğim.
‫Yani daha önce try parse görmüştük.
‫Basitçe yaptığı şey, verilen değeri bir tamsayıya dönüştürmeye çalışmaktır ve eğer işe yaradıysa o zaman
‫doğru olacaktır.
‫Ve eğer işe yaramadıysa, o zaman yanlış olacaktır.
‫Ve bu arada, eğer işe yararsa, o zaman numarayı da çıkaracağız.
‫Yani eğer yapabilirsem ya da pozitif bir değer elde edersem, şimdi sadece bir numaranın değer olacağını söyleyeceğim.
‫Ayrıca değiştirmek istediğim şey veya tetikleyici özellik değişti ve NUM olanı tetikleyeceğim.
‫Tamam.
‫Bu yüzden, değer değiştirilirse bu bir numaralı özelliği değiştireceğim.
‫Şimdi de ikinci numaramız için bunu kopyalayabiliriz.
‫Yani iki numara ve ben bunu iki numara olarak değiştireceğim.
‫Aynı zamanda bir sayı olacak ve burada iki numara olacak ve orada da öyle olacak.
‫Ve şimdi son olarak sonucumuz için bir özelliğe ihtiyacımız var.
‫Bu yüzden public string result'ı oluşturacağım ve bu da bir get ve set'e sahip olacak.
‫Yani burada bir sonuç elde edilecek ve bir numaralı pas sağlam olacak.
‫Artı değil.
‫Parr'ların iki annesi var.
‫Peki bunu neden şimdi yapabiliyorum?
‫Çünkü onları geri gönderiyorum ve ne zaman onları bir ve ben iki olarak ayarlasam.
‫Yani buradakiler zaten tam sayıdır çünkü yalnızca ayarlanırlar, yalnızca bir sayı iseler bir değere
‫sahiptirler.
‫Aksi takdirde asla ayarlanamayacaklar.
‫Boş olacaklar.
‫Ve sonra devam etmemiz ve yapmamız gereken şey buraya bir şey döndürmektir.
‫Bu yüzden geri kalanını dizeye geri döndüreceğim.
‫Yani sonuç ve şimdi birisi sonucu ayarlamaya çalışırsa, basitçe şunu yapacağım.
‫Yani set int sonucu int pars olacaktır.
‫Aslında burada yaptığımızın aynısı, sadece onu iade etmiyoruz, ama ayarlıyoruz.
‫Yani sonuç dize kadar dinlenmek olacak.
‫Ve şimdi burada UN özelliğini sonucumuz için değiştirdik diyoruz ve aynı şey num two ve num one için de geçerli.
‫Yani bu ne yapar.
‫Yani bu BM mülkü değişti.
‫Hatırlayacağınız gibi, mülkün değerini değiştirir.
‫Yani özellik değişti olay yayları ve özelliği alacak ve bu özellik değişti
‫olayını ve ardından tüm bu özellikleri çağıracak.
‫Böylece bir numaralı özellik, iki numaralı özellik ve sonuç bir bildirilecek ve sonucumuz değiştirilmelidir.
‫Yani istediğim şey, birisi her numara girdiğinde bu üç numaranın da değişecek
‫olması.
‫Ve bunu kontrol etmeden veya test etmeden önce, . 0. 6 dosyası ve aslında some sınıfımızın
‫bir nesnesini oluşturun.
‫Böylece bir sınıf oluşturduk ve devam edip yeni bir nesne oluşturacağım.
‫Burada oluşturacağım nesne sadece bir nesne olmayacak, aynı zamanda bir özellik de olacak.
‫Yani bazı nesneler get ve set yapacak.
‫Ve şimdi buna erişmek için, bazılarımızı da halka açık hale getirmemiz gerekiyor.
‫Bu sınıfı public yapalım ve şimdi devam edip bu bazı nesneleri kullanabiliriz.
‫Şimdi bu bazı nesneleri, bazı nesneleri burada başlangıçta ayarlayabilirim.
‫Ve diyeceğim ki bu yeni bir toplamdır ve birin değeri bir değildir ve ikinin değeri de diyelim
‫ki üçtür.
‫Gördüğünüz gibi burada string kullanmak zorundayız çünkü aksi takdirde çalışmaz çünkü bu özellikler
‫string, değil mi?
‫Şimdi çağırmam gereken şey ya da ayarlamam gereken şey veri bağlamını sum nesnemize ayarlamaktır çünkü aksi takdirde hiçbir
‫şey olmayacaktır.
‫Şimdi bunu çalıştıralım.
‫Ve sonra görüyorsunuz, sonuç olan üç numarayı hiç ayarlamadık ve belki de buna gerçekten sonuç dersek
‫daha da iyi olur.
‫Şimdi buraya gidelim ve etiketi sonuç ya da belki biraz olarak değiştirelim.
‫Yani toplam bu olacak.
‫Belki de non one ve non two gibi bir şeydir.
‫Şimdi tekrar çalıştıralım.
‫Ve işte buradasın.
‫Bir artı üç dört eder.
‫Şimdi bunu diyelim ki 25 olarak değiştirelim.
‫Ve gördüğünüz gibi, değişti.
‫Şimdi 3 değerini 31 olarak değiştirelim.
‫56'yı görüyorsun.
‫Şimdi, eğer buradaki değeri değiştirirsem.
‫Gördüğünüz gibi, normal değerine geri dönüyor çünkü burada The Setter'da yaptığımız şey.
‫Birisi sonucu ayarlamaya çalışırsa, sonucu yine son tarafların, bir numaranın ve iki numaranın değerine
‫ayarlarız.
‫Dolayısıyla, dize sonucumuzun sonucunu ayarlamaya çalışırsak her zaman gerçek sonuca geri dönecektir.
‫Artık bununla oynayabilir ve istediğinizi hesaplayabilirsiniz ve gerçek zamanlı yanıtlara
‫veya değerlerinizin gerçek zamanlı toplamlarına sahip olursunuz.
‫Devam edip bir tane daha ekleyebilir veya şimdi devam edip bunu bir çarpan olarak değiştirebilirsiniz.
‫Ama şimdi biliyorum ki yapmamız gereken epeyce bir hazırlıktı.
‫Bu yüzden sizinle birlikte hızlıca bir kez daha üzerinden geçmek istiyorum.
‫XHTML dosyasında bu üç etiket ve bu üç metin kutusu vardı, bunlar sadece kullanıcı arayüzü öğeleriydi,
‫değil mi?
‫Ve bunların her birinin metni birbirine bağlıdır.
‫Yani bunda bir numaraya giden yol var, bunda ikiye giden yol var ve bunda da sonuca giden
‫yol var.
‫Ve bunlar da buradakiler.
‫Yani bir numara.
‫İki numaralı ve üç numaralı özellikler.
‫Bir olay olan ve sadece özellik değişikliği olarak adlandıracağımız bu özellik değişikliği olay işleyicisine
‫sahip bir arayüz olan I notify property change'den miras alan ekstra bir sınıf oluşturduk.
‫Şimdi, özelliklerimizden biri her değiştirildiğinde çağrılan özellik değişikliğinde adlı bir
‫yöntem oluşturduk ve bu, bir özellik ayarlandığında yapılır.
‫Yani bu num one özelliğine sahibiz ve eğer birisi NUM one değerini ayarlamaya çalışırsa, bunu basitçe özellik
‫değiştirildi olarak çağıracağız.
‫Ve burada özelliği ayarlıyoruz, yani tamam, bana bir özellik ver diyoruz ve bu özelliği verilen değerle değiştiriyoruz.
‫Yani hemen hemen onu ayarlıyoruz, ancak aynı zamanda, yalnızca ayarlayıcıda şu anda ayarladığımızı
‫ayarlamıyoruz.
‫Yani burada sadece num one'ı ayarlamıyoruz, aynı zamanda sonucu da ayarlıyoruz ve burada bu satırı görüyorsunuz,
‫bu alanı ayarlıyor, böylece bu özel dize alanını değiştiriyor ve bu özellik değiştirildiğinde aslında özelliğin
‫kendisini değiştiriyor.
‫Dolayısıyla, özelliğin kendi değerini değiştirecek, ancak aynı zamanda özelliğin sonucunun
‫değerini de değiştirecektir.
‫Dolayısıyla, num one'ın değerini her değiştirdiğimizde sonucumuzu güncelleyecektir ve aynı şey num two
‫için de geçerlidir ve aynı şey sonucumuz için de geçerlidir; sonuç her değiştirildiğinde, devam etmek
‫ve bunu özellik değiştirme yönteminde de çağırmak istiyoruz.
‫Doğru.
‫Şimdi yapay zekayı nasıl kullanabileceğinizi görüyorsunuz, bildirim özelliği bu arayüzü nasıl kullanabileceğinizi değiştirdi ve bunu birden fazla farklı
‫şekilde kullanabilirsiniz.
‫Ve herhangi bir özellik değiştirildiğinde bunu kullanmak gerçekten ilginçtir.
‫Diyelim ki renk değiştirildi ve bazı süslü animasyonlar yapacak bir olayı tetiklemek istiyorsunuz
‫ya da birisi programınızda bir yerde bir özelliği değiştirecek bir düğmeye basıyor ve sonrasında harika bir şey
‫olmasını istiyorsunuz.
‫Tüm bunları bununla ayarlayabilirsiniz.
‫Mülk değişikliği arayüzünü bildirdim.
‫Elbette burada yapmanız gereken şey, kullandığınız sınıf ile değiştirilen özelliği bildirmek arasında
‫bir kalıtım ilişkisi oluşturmaktır.