Я пишу программу WPF, и я пытаюсь определить способ форматирования данных в TextBox с помощью некоторого повторяемого метода, такого как стиль или шаблон. У меня много текстовых полей (точнее, 95), и каждый из них привязан к собственным числовым данным, каждый из которых может иметь свое собственное разрешение. Например, если данные 99.123 с разрешением 2, то он должен отображать 99.12. Аналогично, значение данных 99 и разрешение 3 должно отображаться как 99 000 (не 99). Есть ли способ сделать это?
Edit: Я должен уточнить, на текущем экране, на котором я работаю, есть 95 TextBoxes, но я хочу, чтобы каждый TextBox на разных экранах моей программы отображал правильное количество десятичных знаков. Теперь, когда я думаю об этом, некоторые из них - TextBoxes (например, экран, над которым я сейчас работаю), а некоторые - DataGrids или ListViews, но если я смогу понять, как заставить его работать в TextBoxes, я уверен, что смогу это также для других элементов управления.
В этом случае не так много кода, но я попытаюсь сделать его более ясным:
У меня есть модель просмотра, которая содержит следующие свойства (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
и в XAML у меня есть:
<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 (мое решение): Оказалось, что, немного отодвинувшись от компьютера, я вернулся, чтобы найти простой ответ, который смотрел мне в лицо. Отформатируйте данные в модели просмотра!
Public ReadOnly Property Value As String
Get
Return (Strings.FormatNumber(Math.Round(_signal.DisplayValue, _signal.DisplayResolution), _signal.DisplayResolution))
End Get
End Property