WPF là một bộ công cụ tuyệt vời và dữ liệu XAML rất mạnh, nhưng tôi thường gặp khó khăn phát sinh từ tính minh bạch của nó: Có thể khó khăn khi gỡ lỗi một lỗi dữ liệu khi không có lỗi.Có một công cụ tốt để gỡ lỗi hành vi/lỗi dữ liệu của XAML trong thời gian chạy không?
Ví dụ, tôi gần đây đã phải thay đổi một tuyên bố Style
như thế này:
<DataGrid.RowStyle>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding TestProperty}" Value="False">
<Setter Property="DataGridRow.Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
Into này:
<DataGrid.RowStyle>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.TestProperty}" Value="False">
<Setter Property="DataGridRow.Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
Để cho tài sản DataGridRow bị ảnh hưởng. Sẽ rất hữu ích nếu thấy, tại thời điểm thiết kế hoặc thời gian chạy, ý nghĩa của việc gắn kết với các nguồn khác nhau và RelativeSource
sẽ là như thế nào.
Có bất kỳ công cụ/kỹ thuật nào tồn tại không?
Điều này chắc chắn đã giúp - được chấp nhận! Để hoàn thiện, vì việc kiểm tra cây trực quan trong thời gian chạy là mối quan tâm liên quan, tôi cũng muốn chỉ ra [Snoop] (http://www.blois.us/Snoop/) cho bất kỳ ai vẫn không biết về sự quyến rũ của nó. –
Phiên bản Snoop mới nhất có thể tìm thấy trên CodePlex: http://snoopwpf.codeplex.com/ –
Hữu ích cho tôi là Tracelevel chính xác trên cửa sổ đầu ra. Tùy chọn> Gỡ lỗi> Cửa sổ đầu ra> Ràng buộc dữ liệu. Như mô tả ở đây: http://karlshifflett.wordpress.com/2010/06/24/visual-studio-2010-wpf-trace-settings-default-is-incorrect – uli78