2010-08-03 26 views
6

Chúng tôi có một dự án rất lớn. Nhật ký đầu ra gỡ lỗi Visual Studio chứa một số lỗi ràng buộc WPF lặp lại. Ví dụ:
Làm thế nào để săn lùng các lỗi ràng buộc WPF?

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')

Các dòng được in khi một số hành động được thực hiện. Tuy nhiên, đây là một hoạt động rất nặng, trong đó hàng chục lớp WPF có liên quan.

Có cách nào nhanh chóng để tìm nguồn chính xác của lỗi liên kết không? Một số công cụ có thể giúp đỡ?

Trả lời

5

Lỗi bạn thấy là do MaxWidth của điều khiển đang bị ràng buộc với điều khiển khác Width. MaxWidth phải có giá trị số nhất định, nhưng Width có thể có nhiều giá trị không xác định, tùy thuộc vào bố cục đang được sử dụng. Trong trường hợp này, chiều rộng của điều khiển nguồn là NaN - đây là giá trị không hợp lệ cho MaxWidth. Điều đó gây ra lỗi.

Vì vậy, tôi muốn tìm một liên kết trên một điều khiển nơi bạn đang đặt MaxWidth="{Binding Width, ElementName=someElement}" hoặc tương tự. Khi bạn đoán, ràng buộc đó đã được đặt vào vị trí bởi vì một điều khiển nằm trong một bảng bố cục như StackPanel không hạn chế kích thước của con cái của nó, và ai đó đã cố gắng ràng buộc MaxWidth để giải quyết các vấn đề. Một giải pháp tốt hơn là thay đổi thành điều khiển bảng điều khiển để hạn chế kích thước nội dung của nó.

Thao tác đang được thực hiện có thể không liên quan đến lỗi trong trường hợp này, ngoại trừ việc nó có vẻ làm mất hiệu lực bố cục của bạn.

Các vấn đề liên quan