在 Windows 8.1 的 XAML 应用程序中使用 ValueConversion
Using ValueConversion in a XAML application in Windows 8.1
我正在为我为工作创建的温度 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(object value, Type targetType, object parameter, string language ) & 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)
注意最后一个参数是字符串,不是 CultureInfo。您所追求的示例是针对 WPF 的。可以参考this sample,是WP用的
我正在为我为工作创建的温度 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(object value, Type targetType, object parameter, string language ) & 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)
注意最后一个参数是字符串,不是 CultureInfo。您所追求的示例是针对 WPF 的。可以参考this sample,是WP用的