如何实现WPF转换器Converter对多值数据的转换处理?

更新于
2026-08-24 19:00:37
24阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计312个文字,预计阅读时间需要2分钟。

如何实现WPF转换器Converter对多值数据的转换处理?

定义一个多值转换器,用于处理数值区间。

csharpusing System;using System.Globalization;using System.Windows.Data;using System.Collections.Generic;

namespace demo_business.Converters{ public class NumIntervalConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values.Length <2) return 无效的输入;

try { var min=Convert.ToDouble(values[0]); var max=Convert.ToDouble(values[1]); return ${min}-{max}; } catch (Exception) { return 转换错误; } }

如何实现WPF转换器Converter对多值数据的转换处理?

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { if (value is string) { var split=((string)value).Split('-'); if (split.Length==2) { return new object[] { Convert.ToDouble(split[0]), Convert.ToDouble(split[1]) }; } } return null; } }}


定义多值处理方法。

using System; using System.Globalization; using System.Windows.Data; namespace demo_business.Converters { public class NumIntervalConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values == null || values.Length == 0) { return null; } //组装展示数据 string value = "数据拼接: "+ values[0].ToString() + values[1].ToString(); return value; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }

引用和使用

<Page x:Class="XXXXXXX.Views.Pages.XXXXXXXView" xmlns:localConverter="clr-namespace:demo.Converters" mc:Ignorable="d" Title="MainLeftBottomView"> <Page.Resources> <localConverter:NumIntervalConverter x:Key="NumIntervalConverter"/> </Page.Resources> <Grid> <Label Margin="20,0,0,0" > <Label.Content> <MultiBinding Converter="{StaticResource NumIntervalConverter}"> <Binding Path="OperationInfo.MinNum"/> <Binding Path="OperationInfo.MaxNum"/> </MultiBinding> </Label.Content> </Label> </Grid> </Page>

本文共计312个文字,预计阅读时间需要2分钟。

如何实现WPF转换器Converter对多值数据的转换处理?

定义一个多值转换器,用于处理数值区间。

csharpusing System;using System.Globalization;using System.Windows.Data;using System.Collections.Generic;

namespace demo_business.Converters{ public class NumIntervalConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values.Length <2) return 无效的输入;

try { var min=Convert.ToDouble(values[0]); var max=Convert.ToDouble(values[1]); return ${min}-{max}; } catch (Exception) { return 转换错误; } }

如何实现WPF转换器Converter对多值数据的转换处理?

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { if (value is string) { var split=((string)value).Split('-'); if (split.Length==2) { return new object[] { Convert.ToDouble(split[0]), Convert.ToDouble(split[1]) }; } } return null; } }}


定义多值处理方法。

using System; using System.Globalization; using System.Windows.Data; namespace demo_business.Converters { public class NumIntervalConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values == null || values.Length == 0) { return null; } //组装展示数据 string value = "数据拼接: "+ values[0].ToString() + values[1].ToString(); return value; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }

引用和使用

<Page x:Class="XXXXXXX.Views.Pages.XXXXXXXView" xmlns:localConverter="clr-namespace:demo.Converters" mc:Ignorable="d" Title="MainLeftBottomView"> <Page.Resources> <localConverter:NumIntervalConverter x:Key="NumIntervalConverter"/> </Page.Resources> <Grid> <Label Margin="20,0,0,0" > <Label.Content> <MultiBinding Converter="{StaticResource NumIntervalConverter}"> <Binding Path="OperationInfo.MinNum"/> <Binding Path="OperationInfo.MaxNum"/> </MultiBinding> </Label.Content> </Label> </Grid> </Page>