2013-06-11 107 views

Trả lời

3

Bạn có thể sử dụng một cái gì đó như thế này

<TextBox TextAlignment="Right" 
     Text="{Binding Price, 
      UpdateSourceTrigger=PropertyChanged, 
      StringFormat='#.00', 
      ConverterCulture={x:Static sysglb:CultureInfo.CurrentCulture}}"/> 

mà buộc các văn bản có liên kết đúng và có định dạng như 105,00 hoặc 19,95 với số thập phân điểm/dấu phẩy tùy thuộc vào thiết lập hệ thống người dùng. Bạn cũng có thể thêm ký hiệu tiền tệ vào định dạng chuỗi nếu có.

Chỉnh sửa: Xin lỗi, tôi đã tha hồ khi nhập tự động các không gian tên. Trong phần tử cấp cao nhất của bạn (UserControl, cửa sổ, ...) thêm:

<UserControl x:Class="..." 
    ... 
    xmlns:sysglb="clr-namespace:System.Globalization;assembly=mscorlib" 
    ... 
> 
+0

nhờ sự giúp đỡ, tôi cố gắng mã này, nhưng tại sao Tôi không thể sử dụng sysglb: CultureInfo.CurrentCulture} * xin lỗi cho câu hỏi ngu ngốc của tôi>. < – user2473454

+0

Nếu bạn không sử dụng plugin ReSharper (Hey! Rất đáng đồng tiền! Ok, tôi thành kiến, vì tôi sử dụng các sản phẩm khác của điều đó công ty ...), các không gian tên không được nhập tự động. Tôi sẽ thêm nó vào câu trả lời của tôi. – eMko

+0

@ user2473454 Tôi nhận được cùng một ... – AndyUK

10

Bạn đang tìm kiếm một cái gì đó như thế này ?:

<TextBox Text="{Binding Path=Txt, StringFormat=C}"/> 
+0

Điều này sẽ hiển thị ký hiệu tiền tệ tùy thuộc vào cài đặt hệ thống người dùng, mà không phải tương ứng với tiền tệ trong cơ sở dữ liệu. – eMko

+0

cơ sở dữ liệu nào? ;-) – rhe1980

+1

hoặc bất kỳ nguồn dữ liệu nào bạn có :). Giải pháp của bạn rõ ràng là sạch hơn so với mỏ (bỏ phiếu), nhưng có một sự thiếu sót rằng bạn không có quyền kiểm soát mà dấu hiệu tiền tệ được hiển thị cho người dùng và do đó không phải tương ứng với dữ liệu. – eMko

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