Вы можете выполнить это sh с помощью MultiBinding и IMultiValueConverter.
MultiBinding принимает ваше значение и количество десятичных разрядов, а затем использует настраиваемый преобразователь нескольких значений для string.Format
значения, возвращая результат.
Вот простой пример :
XAML
<TextBox>
<TextBox.Text>
<MultiBinding Converter="{StaticResource DecimalPlaceStringFormatConverter}">
<Binding Path="PropertyAValue" />
<Binding Path="PropertyADecimalPlaces" />
</MultiBinding>
</TextBox.Text>
</TextBox>
Конвертер
public class DecimalPlaceStringFormatConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
string result = null;
if (values.Length == 2 && values[0] is double value && values[1] is int decimalPlaces)
{
result = string.Format($"{{0:F{decimalPlaces}}}", value);
}
return result;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}