如何解决WPF 工具包 BarSeries 降序
WPF toolkit System.Windows.Controls.DataVisualization.Charting.BarSeries
可以设置排序吗?我有以下条形图:
<dvc:Chart x:Name="BarChart">
<dvc:Chart.Axes>
<dvc:CategoryAxis Orientation="X">
<dvc:CategoryAxis.Style>
<Style targettype="{x:Type dvc:CategoryAxis}" >
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="-180" />
</Setter.Value>
</Setter>
</Style>
</dvc:CategoryAxis.Style>
<dvc:CategoryAxis.AxisLabelStyle>
<Style x:Name="labelStyleX1" targettype="Control">
<Setter Property="FontSize" Value="15"/>
<Setter Property="LayoutTransform" >
<Setter.Value>
<RotateTransform Angle="-45" />
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Black"/>
</Style>
</dvc:CategoryAxis.AxisLabelStyle>
</dvc:CategoryAxis>
</dvc:Chart.Axes>
<dvc:Chart.Series>
<dvc:BarSeries ItemsSource="{Binding Overall}"
DependentValueBinding="{Binding Path=Value}"
IndependentValuePath="Key"
Title="Overall"
x:Name="overBar">
<dvc:BarSeries.Style>
<Style targettype="{x:Type dvc:BarSeries}" >
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="-180" />
</Setter.Value>
</Setter>
</Style>
</dvc:BarSeries.Style>
</dvc:BarSeries>
</dvc:Chart.Series>
</dvc:Chart>
由于 CategoryAxis.sortOrder
没有任何影响,我尝试手动将其旋转 180 度,但轴不旋转,将标签留在错误的位置。绑定的字典肯定是排序的,但是这个排序被控制忽略了:
Antecedent = new Dictionary<string,int>(Antecedent.OrderByDescending(x => x.Value).Take(MaxStats));
我也尝试了 this 解决方案,但没有帮助。尽管值被否定,排序顺序不会改变:
我怎样才能颠倒这个系列,在图的顶部获得最多的值?
解决方法
您应该按升序而不是降序对值进行排序。
尝试使用 OrderBy
而不是 OrderByDescending
Antecedent = new Dictionary<string,int>(Antecedent.OrderBy(x => x.Value).Take(MaxStats));
如果它不起作用,请分享您分配给 Overall
属性的代码,因为您将 ItemsSource
绑定到 Overall
属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。