2010-08-03 19 views
6

Çok büyük bir projemiz var. Visual Studio hata ayıklama çıkış günlüğünde birkaç yinelenen WPF bağlama hatası vardır. Örneğin : bir işlem gerçekleştirildiğinde
WPF bağlama hataları nasıl atılır?

System.Windows.Data Error: 5 : Value produced by BindingExpression is not valid for target property.; Value='NaN' BindingExpression:Path=Width; DataItem='ContentPresenter' (Name=''); target element is 'ContentPresenter' (Name=''); target property is 'MaxWidth' (type 'Double')

hat basılır. Ancak, bu onlarca WPF sınıfının dahil olduğu çok ağır bir işlemdir.

Bağlama hatasının tam kaynağını bulmanın hızlı bir yolu var mı? Yardımcı olabilecek bazı araçlar? Bir kontrolün MaxWidth başka kontrolün Width bağlı ediliyor çünkü

cevap

5

Gördüğünüz hata olduğunu. MaxWidth, belirli bir sayısal değere sahip olmak zorundadır, ancak Width, kullanılan yerleşime bağlı olarak, belirli olmayan birçok değere sahip olabilir. Bu durumda, kaynak denetiminin genişliği NaN - MaxWidth için geçersiz bir değerdir. Bu, hataya neden oluyor.

Yani, MaxWidth="{Binding Width, ElementName=someElement}" veya benzeri ayarlandığınız bir denetim üzerinde bir bağlayıcı aramak istiyorum. Bir kontrol alt öğelerinden boyutunu sınırlamak etmeyen bir StackPanel gibi düzen panelinin içinde bulunur ve birisi kırpma sorunları ile uğraşmak MaxWidth bağlamak çalıştı çünkü bağlama yerine koymak edildiğini belirten bir tahmin az

. Daha iyi bir çözüm, içerik boyutunu kısıtlayan bir panel kontrolüne geçmek.

Gerçekleştirilen işlem, bu durumda hatayla ilgisi yoktur, ancak düzeninizi geçersiz kılıyor gibi görünüyor.