Как отсортировать столбец WPF ListView по выводу MultiConverter - PullRequest
1 голос
/ 24 июня 2019

Я хотел бы отсортировать столбец ListView по выводу MultiConverter Я использую ListView и его GridViewColumns для отображения данных из привязки.

Обработчик "SortClickUniversal ()" был добавлен в ListView, который в свою очередь вызывает "Sort ()"

Если «Sort ()» находит строку содержимого указанного выше GridViewColumnHeader, он создает SortDescription с помощью связывающего элемента («WartVPreis») и добавляет его в представление по умолчанию ListView ItemSource

Это прекрасно работает для простой привязки ("WartVPreis"). Но у меня дополнительно есть столбец, который заполняется мультисвязывающим конвертером:

<GridViewColumn Width="110" >
    <GridViewColumn.Header>
        <GridViewColumnHeader Content="WV Aktuell Netto €" 
    </GridViewColumnHeader>
    </GridViewColumn.Header>
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <TextBlock 
                Text="{Binding WartVPreis, ConverterCulture=de-DE, StringFormat={}{0:F2}}"  
                HorizontalAlignment="Right" 
                />
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

C #

private void SortClickUniversal(object sender, RoutedEventArgs e)
{
        //...
        var sortBy = (e.OriginalSource as GridViewColumnHeader).Content.ToString();
        bool sortieren = Sort(sortBy, direction, sender);
        //...
}



private bool Sort(string sortBy, ListSortDirection direction, object sender)
{
    switch (sortBy)
    {
        //...
        case "WV Aktuell Netto €": sortBy = "WartVPreis"; break;
        //...
        SortDescription sd = new SortDescription(sortBy, direction);
        dataView.SortDescriptions.Add(sd);
    }
}

XAML

<GridViewColumn Width="90" >
    <GridViewColumn.Header>
        <GridViewColumnHeader Content="WV Ant. Net €"></GridViewColumnHeader>
    </GridViewColumn.Header>
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <TextBlock HorizontalAlignment="Right" >
                <TextBlock.Text>
                    <MultiBinding Converter="{StaticResource MultiWVAnteilConverterKey}" ConverterCulture="de-DE" StringFormat="{}{0:F2}">
                        <Binding Path="WartVPreis" />
                        <Binding Path="Dtvon" />
                        <Binding Path="Dtbis" />
                        <Binding Path="WartVZyklus" />
                        <Binding Path="WartVBJVON" />
                        <Binding Path="WartVBJBIS" />
                    </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

Как я могу отсортировать столбец по выходу мультиконвертера с его MultiBinding?

...