Я хочу отобразить некоторый текст в своем представлении, но если текст имеет длину более 600 символов, я хочу обрезать и добавить многоточие в конце. Если текст меньше 600 символов, я буду отображать всю строку без изменений.
Я думал что-то вроде этого:
public string Description
{
get
{
int txtLen = Description?.Length ?? 0;
int maxLen = 600;
if (txtLen > 0)
{
string ellipsis = txtLen > maxLen ? "…" : "";
return Description.Substring(0, txtLen > maxLen ? maxLen : txtLen) + ellipsis;
}
else
{
return "";
}
}
set
{
Description = value;
}
}
Код выше компилируется, но когда япопробуйте запустить его, приложение истекло с сообщением об ошибке «отказано в соединении». Если я изменяю свойство на public string Description { get; set; }
, мое приложение запускается.
Мне нужен установщик, потому что в другом месте моего приложения я изменяю свойство Description
в контроллере.
ОБНОВЛЕНИЕ
Спасибо Стиву за решение. Однако, когда усечение сработало, я понял, что иногда я действительно хочу, чтобы весь текст был в виде. Поэтому я сделал дополнительный метод, который использует оригинальный Description
вместо private string _dsc
:
public string Description { get; set; }
public string DescriptionTruncate(int maxLen)
{
int txtLen = Description?.Length ?? 0;
if (txtLen > 0)
{
string ellipsis = txtLen > maxLen ? "…" : "";
return Description.Substring(0, txtLen > maxLen ? maxLen : txtLen) + ellipsis;
}
else
{
return "";
}
}