步步为盈
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.0 KiB

3 years ago
using System;
using System.Globalization;
using System.Linq;
using System.Windows.Data;
namespace BBWY.Client.Converters
{
public class ObjectConverter : IValueConverter
{
2 years ago
3 years ago
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
2 years ago
string[] parray = parameter.ToString().ToLower().Split(':');//参数拆分
3 years ago
string valueStr = value == null ? string.Empty : value.ToString().ToLower();
string returnValue = string.Empty;
try
{
if (string.IsNullOrEmpty(valueStr))
{
returnValue = parray[0].Contains("#null") ? parray[1] : parray[2];
}
else if (parray[0].Contains("|"))
{
returnValue = parray[0].Split('|').Contains(valueStr) ? parray[1] : parray[2];
}
else
{
returnValue = parray[0].Equals(valueStr) ? parray[1] : parray[2];
}
if (returnValue.Equals("#source", StringComparison.CurrentCultureIgnoreCase))
2 years ago
return value;
3 years ago
return returnValue;
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"ObjectConverter {ex.Message} {parameter}");
Console.ResetColor();
}
return 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];
}
}
}