WPF转换器如何实现多值转换,能否一问多答?
- 内容介绍
- 文章标签
- 相关推荐
本文共计265个文字,预计阅读时间需要2分钟。
定义多值转换器。使用System、System.Globalization和System.Windows.Data命名空间。在demo_business命名空间中创建NumIntervalConverter类,实现IMultiValueConverter接口。
csharpusing 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) { // 转换逻辑 }
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { // 反转换逻辑 return new object[0]; } }}
定义多值处理方法。
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>
本文共计265个文字,预计阅读时间需要2分钟。
定义多值转换器。使用System、System.Globalization和System.Windows.Data命名空间。在demo_business命名空间中创建NumIntervalConverter类,实现IMultiValueConverter接口。
csharpusing 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) { // 转换逻辑 }
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { // 反转换逻辑 return new object[0]; } }}
定义多值处理方法。
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>

