72 lines
2.4 KiB
C#
72 lines
2.4 KiB
C#
/*
|
|
* Copyright (c) 2022 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Data;
|
|
|
|
namespace AuroraUIComponent.UIConverter
|
|
{
|
|
public class TokenIndexConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
if (value is string strToken) {
|
|
if (parameter is string[] arrReplace) {
|
|
for (int i = 0; i < arrReplace.Length; i++) {
|
|
var findToken = "{" + i + "}";
|
|
strToken = strToken.Replace(findToken, arrReplace[i]);
|
|
}
|
|
|
|
} else if (parameter is string replace) {
|
|
for (int i = 0; i < replace.Length; i++) {
|
|
var findToken = "{" + i + "}";
|
|
strToken = strToken.Replace(findToken, replace);
|
|
}
|
|
}
|
|
|
|
return strToken;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
if (value is string resultString && parameter is string[] replace) {
|
|
for (int i = 0; i < replace.Length; i++) {
|
|
var findToken = "{" + i + "}";
|
|
resultString = resultString.Replace(replace[i], findToken);
|
|
}
|
|
|
|
return resultString;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
}
|
|
public class TruncateTextConverter : IValueConverter
|
|
{
|
|
public int Length { get; set; } = 5;
|
|
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
var result = value.ToString();
|
|
if (!string.IsNullOrEmpty(result) && result.Length > Length) {
|
|
return result.Substring(0, Length) + "..."; // 앞부분 N글자와 '...' 추가
|
|
}
|
|
return value; // 5글자 이하인 경우 원래 텍스트 반환
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|