Как я могу добавить 3 списка в один ListView, разделив столбцы - PullRequest
0 голосов
/ 16 октября 2019

Я создаю Log Analyzer для определенных журналов отладки. Журнал настроен так:

[16Oct2019 09:03:16.150] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML 28.1 loading

Теперь я создал 4 списка, каждый из которых содержит одну часть журнала.

List1 contains [16Oct2019 09:03:16.150]
List2 contains [main/DEBUG]
List3 contains [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML 28.1 loading

и LogList, содержащий весь журнал, разделенный только строкой:

LogList[0] = "[16Oct2019 09:03:16.150] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML 28.1 loading"
LogList[1] = "[16Oct2019 09:03:16.150] [main/DEBUG] [net.minecraftforge.fml.loading.FMLLoader/CORE]: FML found ModLauncher version : 4.0.0+61+ca3b447"
etc.

В моем UserControl у меня есть ListView:

<ListView Grid.Row="1" ItemsSource="{Binding LogList}"/>

Но я нене хочу ListView, содержащий этот LogList. Я хочу, чтобы ListView был разделен на 3 части. Один содержит List1 с датой DateTimes, второй содержит List2 с типом отладки, а последний содержит List3 с текстом отладки, так что я могу легко отключить неважные журналы и сосредоточиться на ошибках, либо просто скрыть дату, чтобы легче былопрочитать

1 Ответ

1 голос
/ 16 октября 2019

Попробуйте этот класс:

class EventLogItem
{
    public string Date { get; set; }
    public string Category { get; set; }
    public string Event { get; set; }
    public string FullLine => $"{Date} {Category} {Event}";
}

И XAML для вашего ListView:

<ListView ItemsSource="{Binding LogList}">
    <ListView.Resources>
        <Style TargetType="GridViewColumnHeader">
            <Setter Property="Padding" Value="4,0,0,0" />
            <Setter Property="HorizontalContentAlignment" Value="Left" />
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridView.Columns>
                <GridViewColumn Header="Date/Time" DisplayMemberBinding="{Binding Date}" Width="150" />
                <GridViewColumn Header="Category" DisplayMemberBinding="{Binding Category}" Width="150" />
                <GridViewColumn Header="Event" DisplayMemberBinding="{Binding Event}" Width="300" />
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...