0

だから私はBindingでStringFormatを日付と数値に設定することが可能であることを知っていますが、私が達成したいのは次の文字列であるStringFormatです:

「これは、データベースでvarchar(max)として定義されている長いテキストの本文です。これは、文字列が非常に長いことを意味します。」

「これは長いtexの本体です...」(最大長は25文字になります)

前もって感謝します

4

1 に答える 1

1

値コンバーターを使用します。

  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}}"
于 2012-11-29T15:20:57.150 に答える