C# 如何按多转换器输出对WPF ListView列进行排序
我想按多转换器输出对ListView列进行排序 我使用ListView及其GridViewColumns来显示绑定中的数据 将处理程序“SortClickUniversal()”添加到ListView,ListView反过来调用“Sort()” 如果“Sort()”在上面找到GridViewColumnHeader的内容字符串,它将通过绑定元素(“WartVPreis”)创建一个SortDescription,并将其添加到ListView ItemSource的默认视图中 这对于简单的绑定(“WartVPreis”)很好。但我还有一个列,由多重绑定转换器填充:C# 如何按多转换器输出对WPF ListView列进行排序,c#,wpf,listview,converters,columnsorting,C#,Wpf,Listview,Converters,Columnsorting,我想按多转换器输出对ListView列进行排序 我使用ListView及其GridViewColumns来显示绑定中的数据 将处理程序“SortClickUniversal()”添加到ListView,ListView反过来调用“Sort()” 如果“Sort()”在上面找到GridViewColumnHeader的内容字符串,它将通过绑定元素(“WartVPreis”)创建一个SortDescription,并将其添加到ListView ItemSource的默认视图中 这对于简单的绑定(“W
<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>
XAML
如何通过多重转换器输出及其多重绑定对列进行排序
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);
}
}
<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>