Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Code-behind, bir XAML sayfası işaretleme ile derlendiğinde işaretleme ile tanımlanan nesnelerle bağlantılı olan kodu açıklamak için kullanılan bir terimdir. Bu konu, arka planda kod gereksinimlerinin yanı sıra XAML'deki kod için alternatif bir satır içi kod mekanizmasını açıklar.
Bu konu aşağıdaki bölümleri içerir:
WPF'de Code-behind, Olay İşleyici ve Kısmi Sınıf Gereksinimleri
Satır İçi Kod Sınırlamaları
Önkoşullar
Bu konu başlığında WPF
Code-Behind ve XAML Dili
XAML dili, işaretleme dosyası tarafından kod dosyalarını işaretleme dosyalarıyla ilişkilendirmeyi mümkün hale getiren dil düzeyinde özellikler içerir. Özellikle, XAML dili x:Class Yönergesi, x:Subclass Yönergesive x:ClassModifier Yönergesidil özelliklerini tanımlar. Kodun tam olarak nasıl üretilmesi gerektiği ve işaretleme ile kodun nasıl tümleştirileceği, XAML dilinin belirttiğinin bir parçası değildir. Kodun nasıl tümleştirileceğini, uygulama ve programlama modellerinde XAML'nin nasıl kullanılacağını ve tüm bunların gerektirdiği derleme eylemlerini veya diğer desteği belirlemek için WPF gibi çerçevelere bırakılır.
WPF'de arka planda kod, Olay İşleyicisi ve Kısmi Sınıf Gereksinimleri
Kısmi sınıf, kök öğeyi destekleyen türden türetilmelidir.
İşaretleme derleme eylemlerinin varsayılan davranışı altında, kod-arkası tarafında kısmi sınıf tanımında türetme işlemini boş bırakabileceğinizi unutmayın. Derlenen sonuç, sayfa kökü yedekleme türünün belirtilmemiş olsa bile kısmi sınıfın temeli olduğunu varsayar. Ancak, bu davranışa güvenmek en iyi yöntem değildir.
Arka planda koda yazdığınız olay işleyicileri örnek yöntemleri olmalıdır ve statik yöntemler olamaz. Bu yöntemler,
x:Classtarafından tanımlanan CLR ad alanında kısmi sınıf tarafından tanımlanmalıdır. XAML işlemcisine farklı bir sınıf kapsamında olay kablolama için bir olay işleyicisi araması talimatı vermek üzere bir olay işleyicisinin adını niteleyemezsiniz.İşleyici, yedekleme türü sistemindeki uygun olay için temsilciyle eşleşmelidir.
Özellikle Microsoft Visual Basic dili için, işleyicileri XAML'de özniteliklerle eklemek yerine işleyicileri işleyici bildirimindeki örnekler ve olaylarla ilişkilendirmek için dile özgü
Handlesanahtar sözcüğünü kullanabilirsiniz. Ancak,Handlesanahtar sözcüğü belirli yönlendirilmiş olay senaryoları veya ekli olaylar gibi WPF olay sisteminin belirli özelliklerinin tümünü desteklemediğinden bu tekniğin bazı sınırlamaları vardır. Ayrıntılar için bkz. Visual Basic ve WPF Olay İşleme.
x:Code
x:Code, XAML'de tanımlanan bir yönerge öğesidir.
x:Code yönerge öğesi satır içi programlama kodu içerebilir. Satır içinde tanımlanan kod, XAML ile aynı sayfada etkileşimde bulunabilir. Aşağıdaki örnekte satır içi C# kodu gösterilmektedir. Kodun x:Code öğesinin içinde olduğuna dikkat edin ve bir XAML veya WPF şemasını yorumlamaya çalışan bir işlemcinin içeriği XML olarak yorumlamaya çalışmaması için, XML içeriğinin kaçmasını sağlamak amacıyla kodun <CDATA[...]]> ile çevrelenmesi gerektiğine dikkat edin.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyNamespace.MyCanvasCodeInline"
>
<Button Name="button1" Click="Clicked">Click Me!</Button>
<x:Code><![CDATA[
void Clicked(object sender, RoutedEventArgs e)
{
button1.Content = "Hello World";
}
]]></x:Code>
</Page>
Satır içi Kod Sınırlamaları
Satır içi kod kullanımından kaçınmayı veya sınırlamayı göz önünde bulundurmalısınız. Mimari ve kodlama felsefesi açısından işaretleme ve arka planda kod ayrımı sağlamak tasarımcı ve geliştirici rollerini çok daha ayrı tutar. Daha teknik bir düzeyde, satır içi kod için yazdığınız kodun yazılması garip olabilir çünkü her zaman XAML tarafından oluşturulan kısmi sınıfa yazarsınız ve yalnızca varsayılan XML ad alanı eşlemelerini kullanabilirsiniz.
using deyimleri ekleyemediğiniz için, yaptığınız API çağrılarının çoğunu tam olarak nitelemeniz gerekir. Varsayılan WPF eşlemeleri, WPF derlemelerinde mevcut olan çoğu CLR ad alanını içerir fakat tümünü değil; diğer bazı CLR ad alanlarında yer alan tür ve üyelere yönelik çağrıları tam olarak nitelemeniz gerekir. Satır içi kodda kısmi sınıfın ötesinde hiçbir şey tanımlayamazsınız ve başvurabileceğiniz tüm kullanıcı kodu varlıkları, oluşturulan kısmi sınıf içinde üye veya değişken olarak bulunmalıdır. Makrolar veya genel değişkenlere veya derleme değişkenlerine karşı #ifdef gibi diğer dile özgü programlama özellikleri de kullanılamaz. Daha fazla bilgi için bkz. x:Code İç XAML Türü.
Ayrıca bakınız
.NET Desktop feedback