Share via


XAML veri bağlama tanılaması

XAML projelerinde çalışan geliştiricilerin genellikle uygulamalarında XAML veri bağlama hatalarını algılaması ve çözmesi gerekir. Artık Visual Studio 2019 sürüm 16.8 veya üzeri ile Visual Studio 2022'de, uygulamanızda hata ayıklarken bu can sıkıcı veri bağlama hatalarını bulmanıza yardımcı olacak araçlar vardır. Yaygın bağlama hatalarına örnek olarak şunlar verilebilir:

  • Var olmayan bir özellik adına bağlama: {Binding Wrong.Name}
  • Sabit listesi gerektiğinde Boole değerine bağlama gibi yanlış türde bir değere bağlama: Visibility="{Binding IsVisible}"

Bu bağlamalar çalışma zamanında yansıma kullanılarak hesaplandığından, XAML düzenleyicisi bunları her zaman yakalayamaz ve derlemeniz yine de başarılı olur. Hata yalnızca çalışma zamanında gerçekleşir.

XAML veri bağlaması şu makalelerde açıklanmıştır:

Bağlama hataları her zaman Visual Studio'daki hata ayıklama çıktı penceresine yazılmıştır. Ancak, bağlama hatalarını görüntüden kaydıran diğer hata ayıklama bilgilerini içerdiğinden, hata ayıklama çıkışındaki bağlama hatalarını kolayca kaçırabilirsiniz. Hata ayıklama çıkış penceresinde wpf bağlama hatası örneği aşağıda verilmiştir:

Screenshot of the output window containing a binding failure.

Bağlama hatası pencerenin üst kısmından yüzlerce satır olabilir ve metin size tam olarak hangi bağlamanın başarısız olduğunu göstermez, bu nedenle bunu düşünmeniz ve aramanız gerekir.

Artık XAML Bağlama Hataları araç penceresiyle, hangi bağlamaların başarısız olduğunu ve XAML içindeki dosya konumu gibi her hata için ilgili verileri net bir şekilde görebilirsiniz. Ayrıca, XAML düzenleyicisini arayıp, sıralayarak ve hatta odak başarısız bağlamada ayarlanmış şekilde açarak hataları araştırmak için birçok yararlı özellik vardır.

Screenshot of the XAML Binding Failures tool window.

Bu satırlara çift tıklanması, aşağıdaki görüntüde gösterildiği gibi bağlamanın kaynak XAML'sini açar:

Screenshot of example bindings in the XAML editor.

XAML Bağlama Hataları araç penceresi

Hata ayıklama sırasında XAML Bağlama Hataları araç penceresi kullanılabilir. Açmak için Windows>XAML Bağlama Hatalarında Hata Ayıklama'ya >gidin.

Screenshot of the XAML Binding Failures option in the Debug menu.

Ya da uygulama araç çubuğunda Bağlama hataları düğmesini seçin. Simgenin yanındaki sayı, araç penceresinde kaç bağlama hatasının gösterildiğini gösterir.

Screenshot of the in-app toolbar showing the binding failures button.

Araç penceresinde bağlama hatası olmadığında, simge yanında bir sayı olmadan gri olarak gösterilir. Bu, uygulamanızı çalıştırırken yararlı olur. Simgenin bir sayıyla kırmızıya dönüşmesini görürseniz, hangi bağlama hatalarının oluştuğuna bakmak için araç penceresine hızla atlamak için simgeye tıklayın. Visual Studio araç pencerelerini takip etmeniz gerekmez. Bağlama başarısız olduğunda simge size hemen bildirir.

Screenshot of the in-app toolbar showing the binding failures button with no failures.

Canlı Görsel Ağaç araç penceresinde de benzer bir simge görünür.

Screenshot of the binding failures button within the Live Visual Tree tool window.

Aşağıda, XAML Bağlama Hataları araç penceresinin tüm bileşenlerinin açıklaması yer alır.

Screenshot of XAML Binding Failures tool window.

  • Üstteki araç çubuğunda aşağıdaki düğmeler bulunur:
    • Hata listesini temizleyin: Uygulamanızda yeni bir sayfa göstermek üzereyseniz ve bağlama hatalarının gösterilip gösterilmediğini görmek istiyorsanız bu yararlı olur. Yeni bir hata ayıklama oturumu başlattığınızda, liste otomatik olarak temizlenir.
    • Seçili satırları silme: Bir hata düzeltildiyse veya ilgili değilse, listeden silebilirsiniz. Bağlama yeniden başarısız olursa silinen satırlar yeniden görünür.
    • Tüm filtreleri temizle: Listede metin arama gibi filtreler varsa, bu düğme bunları temizler ve listenin tamamını gösterir.
    • Yinelenenleri Birleştir: Aynı bağlama genellikle bir öğe şablonu içinde olduğunda bir satırda birçok kez başarısız olur. Yinelenenleri Birleştir düğmesi seçildiğinde (çevresinde bir ana hat olduğunda) tüm yinelenen hatalar tek bir satır olarak gösterilir. Count sütununda hatanın kaç kez oluştuğu gösterilir.
  • Üst köşedeki Arama Bağlama Hataları kutusu, hataları yalnızca belirli metin içerenlere göre filtrelemenizi sağlar.
  • Tablo sütunları sırayla şunları gösterir:
    • Satırın bir hata veya uyarı için olup olmadığını gösteren simge.
    • XAML'de başarısız {Binding} olan öğesine gitmek destekleniyorsa açılı ayraçları <> gösteren bir simge. Desteklenen Platformlar bölümüne bakın.
    • Veri Bağlamı: Bu, bağlamanın kaynak nesnesinin tür adıdır
    • Bağlama Yolu: Bu, bağlamanın özellik yoludur
    • Hedef: Bu, bağlamanın değerinin ayarlanacağı tür ve özellik adıdır.
    • Hedef Türü: Bu, bağlamanın hedef özelliğinin beklenen türüdür.
    • Açıklama: Bu sütun, bağlama için tam olarak başarısız olan şey hakkında daha fazla bilgi içerir.
    • Dosya, Satır ve Proje: Biliniyorsa, bu XAML'de bağlamanın tanımlandığı konumdur.
  • Bir satıra veya seçili birden çok satıra sağ tıklanması, sütunları göstermek/gizlemek veya gruplandırma için standart seçenekler içeren bir bağlam menüsü gösterir. Diğer seçenekler şunlardır:
    • Bir satırdaki veya tek bir sütundaki tüm metni panoya kopyalayın.
    • Özgün Hatayı Kopyala, hata ayıklama çıktı penceresinde görüntülenen metni kopyalar.
    • Görünüm Kaynağı, seçilen bir satır için XAML'deki bağlama kaynağına gider.
    • Sütunları Sıfırla, sütun görünürlüğünde ve sıralamada yapılan tüm değişiklikleri geri alarak başlangıçta gösterilene hızla dönmenizi sağlar.

Listeyi sıralamak için herhangi bir sütun üst bilgisine tıklayın. Ek sütuna göre yeniden sıralamak için Shift tuşunu basılı tutun ve başka bir sütun başlığına tıklayın. Hangi sütunların görüntüleneceğini ve hangilerinin gizleneceğini seçmek için kısayol menüsünde Sütunları Göster'i seçin. Sütunların görüntülenme sırasını değiştirmek için herhangi bir sütun başlığını sola veya sağa sürükleyin.

Bir satıra çift tıkladıktan veya kaynağa gitmek için Enter tuşuna bastıktan sonra, bağlama hataları listesinde aşağı veya yukarı gitmek için F8 veya Shift+F8 tuşlarına basabilirsiniz. Bu, Visual Studio'da liste gösteren diğer bölmelere benzer.

Desteklenen platformlar

Bağlama hataları çıkışta hata ayıklamak için yazıldığında çoğu XAML platformu desteklenir. Bazı platformlar, hata ayıklayıcıya kaynağa gezinmeye izin veren ek kaynak bilgileri sağlar.

Platform Destekleniyor Desteklenen kaynağa gidin
WPF .NET Framework Yes Hayır
WPF .NET 5.0 RC2+ Yes Yes
UWP Yes Hayır
WinUI3 masaüstü Yes Hayır
MAUI (Çok platformlu Uygulama Kullanıcı Arabirimi) Yes Hayır
Xamarin 4.5.0.266-pre3+ Yes Yes
Xamarin 4.5.0.266 öncesi 3 Hayır Hayır

Kaynağa gitmek için Visual Studio'da XAML Çalışırken Yeniden Yükleme seçeneğinin etkinleştirilmesi gerekir. Bu seçenek, Araçlar>Seçenekler>Hata Ayıklama iletişim kutusundadır:

Screenshot of the XAML Hot Reload options dialog.

Kaynağa gitmek yalnızca XAML kaynak dosyalarında tanımlanan bağlamalar için çalışır; kod aracılığıyla oluşturulduklarında çalışmaz. Hangi satırların kaynağa gezinmeyi desteklediğini net bir şekilde görebilirsiniz. İkinci sütunda açılı ayraç simgesi yoksa, aşağıdaki ekran görüntüsünde vurgulanan satır gibi kaynağa gitmek desteklenmez:

Screenshot showing a XAML binding failure without a source location.

.NET Framework'teki WPF için, XAML Bağlama Hataları bölmesinin bunları algılaması ve göstermesi için hata ayıklama çıkışında veri bağlama hataları gösterilmelidir. Bunun seçeneği, Araçlar>Seçenekler>Hata Ayıklama>Çıkış Penceresi>WPF İzleme Ayarlar iletişim kutusundadır. Ayar Kapalı veya Kritikse, veri bağlama hataları çıkışta hata ayıklamak için yazılamaz ve algılanamaz. .NET 5, .NET 6 ve sonraki sürümlerde WPF ile veri bağlama çıkış ayarı hata listesini etkilemez.

Screenshot of WPF output options.