在 Windows 8.1 中的 XAML 应用程序中使用 ValueConversion
本文关键字:ValueConversion 应用程序 XAML Windows 中的 | 更新日期: 2023-09-27 18:37:19
我正在为我为工作创建的温度Windows Phone 8.1应用程序创建一个简单的值转换器。看,我在这里找到了一个很好的例子(http://www.nullskull.com/faq/74/using-convertback-method-in-an-ivalueconverter.aspx)。
所以,很高兴找到这个例子,我继续我的wp8.1应用程序继续我的工作。问题是,MSDN说它在8.1和许多平台上都不受支持。
这个简短的介绍引出了以下问题:是否可以在Windows 8.1中实现IValueConverter接口而不必使用通用方法:
Convert(对象值,类型目标类型,对象参数,字符串语言)和ConvertBack(对象值,类型目标类型,对象参数,字符串语言)您将能够在下面找到我尝试使用的示例中的代码。感谢您的见解!
[ValueConversion(typeof(double), typeof(double))]
public class FahrenheitToCelsiusConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
throw new ArgumentNullException("value");
}
// Fahrenheit to Celsius
double fahrenheit;
if (double.TryParse(value.ToString(), out fahrenheit))
{
var celsius = (fahrenheit - 32) * 5 / 9;
return celsius;
}
throw new ArgumentException("value must be double");
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
throw new ArgumentNullException("value");
}
// Celsius to Fahrenheit
double celsius;
if (double.TryParse(value.ToString(), out celsius))
{
var fahrenheit = celsius * 9 / 5 + 32;
return fahrenheit;
}
throw new ArgumentException("value must be double");
}
您没有正确实现接口。
两种方法的签名是
public object Convert(object value, Type targetType,
object parameter, string language)
public object ConvertBack(object value, Type targetType,
object parameter, string language)
请注意,最后一个参数是字符串,而不是区域性信息。您之后的示例是针对 WPF 的示例。您可以参考此示例,它是针对WP的。