Tôi đã được gặp một số vui vẻ với bindings TextBlock trong Silverlight 4.
Tôi có tình huống sau đây:Lỗi hoặc tính năng trong TextBlock trong Silverlight 4?
<TextBlock Text="{Binding Date, StringFormat=g}" />
<TextBlock>
<Run Text="{Binding Date, StringFormat=g}"/>
<TextBlock>
đâu Date
là một loại tài sản của System.DateTime
.
Tôi chưa thay đổi văn hóa hiện tại của ứng dụng.
Văn hóa máy của tôi là Bulgaria (bg-BG). Ví dụ:
TextBlock 1: 2011/11/16 12:49
TextBlock 2: 2011/11/16 г. 12:49 ч.
Điều thú vị là ngày TextBlock
định dạng ngày và giờ bằng văn bản vi-en (hoặc văn bản mặc định bất biến) trong khi văn bản thứ hai sử dụng văn hóa bg-BG. Thing nhận được thậm chí người lạ kể từ MSDN documentation cho Silverlight TextBlock kiểm soát nói:
Nếu InlineCollection được tạo ra từ XAML dưới dạng văn bản bên trong của một yếu tố đối tượng TextBlock, hoặc nếu nó được tạo ra bằng cách thiết lập thuộc tính văn bản, InlineCollection chứa một Run duy nhất chứa văn bản đó.
Tôi có thiếu gì đó ở đây hoặc nó có thể được coi là lỗi trong Silverlight 4?
Strange thực sự. Bạn có nhận thấy thuộc tính Văn bản của lớp Khởi động không phải là một DependencyProperty không? Tôi tự hỏi làm thế nào các ràng buộc hoạt động trong tình huống này. Tôi đã thử đặt một bộ chuyển đổi trong cả hai bindings và trong Run ràng buộc các tham số văn hóa thông qua các phương pháp chuyển đổi là NULL. Tôi sẽ nói đây là một lỗi – Bruno