Tôi đang viết một chương trình WPF và tôi đang cố gắng tìm ra cách để định dạng dữ liệu trong một TextBox thông qua một số phương pháp lặp lại như một kiểu hoặc mẫu. Tôi có rất nhiều TextBoxes (95 là chính xác) và mỗi TextBox được gắn với dữ liệu số riêng của nó mà mỗi cái có độ phân giải riêng được xác định. Ví dụ, nếu dữ liệu là 99.123 với độ phân giải là 2 thì nó sẽ hiển thị 99.12. Tương tự, giá trị dữ liệu là 99 và độ phân giải 3 sẽ được hiển thị là 99.000 (không phải 99). Có cách nào để làm việc này không?Làm cách nào để định dạng số vị trí thập phân trong wpf bằng cách sử dụng kiểu/mẫu?
Edit: Tôi nên làm rõ, có 95 textbox trên màn hình hiện tại tôi đang làm việc trên, nhưng tôi muốn mọi TextBox suốt các màn hình khác nhau trong chương trình của tôi để hiển thị chính xác số chữ số thập phân. Bây giờ tôi nghĩ về nó, một số trong số này là TextBoxes (giống như màn hình tôi đang làm bây giờ) và một số là DataGrids hoặc ListViews, nhưng nếu tôi có thể tìm ra cách làm cho nó hoạt động cho TextBoxes. nó ra cho các điều khiển khác là tốt.
Không có nhiều mã để chia sẻ trong trường hợp này nhưng tôi sẽ cố gắng để làm cho nó rõ ràng hơn:
Tôi có một Xem mẫu, trong đó có các thuộc tính sau (vb.net):
Public ReadOnly Property Resolution As Integer
Get
Return _signal.DisplayResolution
End Get
End Property
Public ReadOnly Property Value As Single
Get
Return Math.Round(_signal.DisplayValue, Resolution)
End Get
End Property
và trong XAML tôi có:
<UserControl.Resources>
<vm:SignalViewModel x:Key="Signal" SignalPath="SomeSignal"/>
</UserControl.Resources>
<TextBox Grid.Column="3" IsEnabled="False" Text="{Binding Path=Value, Source={StaticResource Signal}, Mode=OneWay}" />
EDIT2 (giải pháp của tôi): Nó chỉ ra rằng sau khi bỏ đi fr om máy tính một lúc, tôi quay lại tìm một câu trả lời đơn giản đang nhìn chằm chằm vào mặt tôi. Định dạng dữ liệu trong mô hình xem!
Public ReadOnly Property Value As String
Get
Return (Strings.FormatNumber(Math.Round(_signal.DisplayValue, _signal.DisplayResolution), _signal.DisplayResolution))
End Get
End Property
sử dụng 'IValueConverter'? Vượt qua giá trị thực tế và độ phân giải cho bộ chuyển đổi và để cho nó làm tròn cho bạn bên trong chính nó. Thật khó để đề xuất một 'StringFormat' mà không biết chính xác 95 'TextBox' này được tạo ra như thế nào. – Viv
Đăng mã hiện tại và XAML. Nếu không thì đó là tất cả những suy đoán và sự đoán mò vô ích. –
Tôi đã thêm một số thông tin khác vào câu hỏi mà hy vọng sẽ làm cho nó rõ ràng hơn. – AXG1010