だから私はBindingでStringFormatを日付と数値に設定することが可能であることを知っていますが、私が達成したいのは次の文字列であるStringFormatです:
「これは、データベースでvarchar(max)として定義されている長いテキストの本文です。これは、文字列が非常に長いことを意味します。」
に
「これは長いtexの本体です...」(最大長は25文字になります)
前もって感謝します
だから私はBindingでStringFormatを日付と数値に設定することが可能であることを知っていますが、私が達成したいのは次の文字列であるStringFormatです:
「これは、データベースでvarchar(max)として定義されている長いテキストの本文です。これは、文字列が非常に長いことを意味します。」
に
「これは長いtexの本体です...」(最大長は25文字になります)
前もって感謝します
値コンバーターを使用します。
public class LongtoShortenedStringValueConverter : IValueConverter
{
private const int MaxLength= 0D;
/// <summary>
/// Modifies the source data before passing it to the target for display
/// in the UI.
/// </summary>
/// <returns>
/// The value to be passed to the target dependency property.
/// </returns>
/// <param name="value">
/// The source data being passed to the target.
/// </param>
/// <param name="targetType">
/// The <see cref="T:System.Type"/> of data expected by the target
/// dependency property.
/// </param>
/// <param name="parameter">
/// An optional parameter to be used in the converter logic.
/// </param>
/// <param name="culture">The culture of the conversion.</param>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
return string.Empty;
}
return string.Concat(longString.Substring(0, MaxLength), "...");
}
/// <summary>
/// Modifies the target data before passing it to the source object. This
/// method is called only in <see cref="F:System.Windows.Data.BindingMode.TwoWay"/>
/// bindings.
/// </summary>
/// <returns>
/// The value to be passed to the source object.
/// </returns>
/// <param name="value">The target data being passed to the source.</param>
/// <param name="targetType">
/// The <see cref="T:System.Type"/> of data expected by the source object.
/// </param>
/// <param name="parameter">
/// An optional parameter to be used in the converter logic.
/// </param>
/// <param name="culture">The culture of the conversion.</param>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
}
したがって、上記は定数値に基づいてoitを80文字にトリミングします。次に、xamlでフィールドにバインドします
Text="{Binding YourLongString, Converter={StaticResource LongToShortStringValueConverter}}"