Как ограничить длину ячейки в ListView? - PullRequest
1 голос
/ 25 февраля 2020

У меня есть такой вид списка enter image description here

А есть .xalm

...
<ListView
                x:Name="LVLog"
                ToolTip="Log of task(s) execution"
                Background="WhiteSmoke"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"/>
...

И есть способ добавления предметов в LVLog

LVLog.Items.Add(message.Log);

Как вы видите, если строка достаточно длинная, она выходит за границы, и пользователю необходимо прокручивать по горизонтали, чтобы прочитать журнал до конца.

Вопрос в следующем: есть ли способ написать строку на следующей строке, если она дошла до границ?

1 Ответ

1 голос
/ 25 февраля 2020

Вы можете использовать TextBlock как ItemTemplate и установить на него TextTrimming. Таким образом, текст будет обрезан

Long long lo ..

и полный текст вы увидите во всплывающей подсказке:

<ListView ItemsSource="{Binding YourCollection}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ...}" TextTrimming="CharacterEllipsis" ToolTip="{Binding ...}"/>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Если вы хотите иметь больше строк, затем просто установите TextWrapping="Wrap" в TextBlock:

<ListView ItemsSource="{Binding YourCollection}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ...}" TextWrapping="Wrap"/>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...