/* * 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(); } } }