40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Globalization;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using System.Windows.Data;
|
|||
|
|
|
|||
|
|
namespace Cowain.Bake.Common.Converter
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 状态转换器
|
|||
|
|
/// </summary>
|
|||
|
|
public class ObjectConverter : IValueConverter
|
|||
|
|
{
|
|||
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|||
|
|
{
|
|||
|
|
string[] parray = parameter.ToString().ToLower().Split(':'); //将参数字符分段 parray[0]为比较值,parray[1]为true返回值,parray[2]为false返回值
|
|||
|
|
if (value == null)
|
|||
|
|
return parray[2]; //如果数据源为空,默认返回false返回值
|
|||
|
|
if (parray[0].Contains("|")) //判断有多个比较值的情况
|
|||
|
|
return parray[0].Split('|').Contains(value.ToString().ToLower()) ? parray[1] : parray[2]; //多值比较
|
|||
|
|
return parray[0].Equals(value.ToString().ToLower()) ? parray[1] : parray[2]; //单值比较
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|||
|
|
{
|
|||
|
|
var returnValue = "otherValue";
|
|||
|
|
string[] parray = parameter.ToString().ToLower().Split(':');
|
|||
|
|
if (value == null)
|
|||
|
|
return returnValue;
|
|||
|
|
var valueStr = value.ToString().ToLower();
|
|||
|
|
if (valueStr != parray[1])
|
|||
|
|
return returnValue;
|
|||
|
|
else
|
|||
|
|
return parray[0].Contains('|') ? parray[0].Split('|')[0] : parray[0];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|