GridViewColumn и заголовок не установлены внутри ListView - PullRequest
0 голосов
/ 22 октября 2018

У меня есть представление списка, в котором показаны некоторые журналы (типа LogItem).ListView.View установлен в GridView в XAML.GridView имеет два столбца, в которых шаблоны данных для каждого столбца установлены в текстовое поле.Первый столбец привязывается к свойству DateTime объекта LogItem, поэтому для ширины первого столбца можно установить значение «Авто» (предпочтительно) или даже фиксированную ширину, которая мне требуется.

Второй столбец gridview привязывается к сообщению журнала.строка, поэтому она может иметь любую ширину.

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

В тот момент, когда размер второго столбца кажется установленным первым элементом, добавленным в коллекцию, к которой привязан ListView, тогда ширина никогда не обновляется.Поэтому обычно я просто вижу небольшую часть сообщений журнала, а заголовок второго столбца даже не охватывает всю ширину ListView.

Я искал решение этой проблемы.Кажется, все больше людей задают тот же вопрос, но пока ни один из найденных ответов не решил проблему.Я надеюсь, что кто-то может помочь мне направить меня в правильном направлении, что я пропустил.

XAML-код ниже

<ListView Grid.Row="1"
          HorizontalAlignment="Stretch"
          IsSynchronizedWithCurrentItem="False" 
          ItemsSource="{Binding LogItems}"  
          x:Name="LogListView" 
          FontSize="14">
    <!--:GridViewColumnResize.Enabled="True" -->
    <ListView.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Gray" Offset="1"/>
            <GradientStop Color="White"/>
        </LinearGradientBrush>
    </ListView.Background>

    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListViewItem}">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="Background" Value="{Binding BackColor}"/>
            <Setter Property="TextElement.Foreground" Value="White"/>
            <Style.Triggers>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="IsSelected" Value="true" />
                    </MultiTrigger.Conditions>
                    <Setter Property="Background" Value="Gold" />
                    <Setter Property="BorderBrush" Value="Black" />
                    <Setter Property="TextElement.Foreground" Value="Black"/>
                </MultiTrigger>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver" Value="true" />
                    </MultiTrigger.Conditions>
                    <Setter Property="Background" Value="Gold" />
                    <Setter Property="BorderBrush" Value="Black" />
                    <Setter Property="TextElement.Foreground" Value="Black"/>
                </MultiTrigger>
            </Style.Triggers>
        </Style>
    </ListView.ItemContainerStyle>

    <ListView.View>
        <GridView>
            <GridViewColumn Header="{Binding TimeText}" Width="Auto">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock x:Name="TimeLabel" Text="{Binding CreationTime, StringFormat='{}{0:hh:mm:ss.fff}'}" Grid.Column="0"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>

            <GridViewColumn Header="{Binding MessageText}">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Message}" Grid.Column="1"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>                            
</ListView>

Редактировать: Полный код xaml pastebin.com / 24HgAcML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...