我想将 slider 的值从小数转换为 2 位整数。基本上,我想使用 :F2 将其保留到小数点后两位,然后乘以 100。不过我不知道如何乘以 100。
我该怎么做?
XAML:
<Label Text="{Binding Source={x:Reference Slider},
Path=Value,
StringFormat='Font Size: {0}'}"/>
<Slider x:Name="Slider"/>
最佳答案
其中一种方法是在代码中创建一个新的值转换器并将其作为静态资源引用。这种方法将在代码中启用任何类型的转换以及传递给转换器的任何类型的参数。
下面的文章介绍了三元运算符在 C# 中的工作原理 https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator
希望对您有所帮助!
XAML:
<Window.Resources>
<local:SliderValueMultiplier x:Key="multiplier"/>
</Window.Resources>
<StackPanel>
<Label Content="{Binding Source={x:Reference Slider}, Path=Value,
Converter={StaticResource multiplier},
ConverterParameter=100}"></Label>
<Slider x:Name="Slider"></Slider>
</StackPanel>
C#代码:
public class SliderValueMultiplier : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter == null) return 0;
double.TryParse(parameter.ToString(), out double multiplier);
return value != null ? Math.Round((double) value, 2) * multiplier : 0;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
免责声明:代码只是您的解决方案的示例。未经额外测试,绝不应将其视为生产就绪。
关于c# - 如何对字符串中引用的绑定(bind)数据执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45357444/