[英]Custom Series Label in Chart WPF
我們有一個圖表控件,可以並排顯示條形圖。 它基於ArguementDataMember“ x”和ValueDataMember“ y”。 圖表與具有屬性x,y,z的數據源(chartData,observablecollection)綁定。 我正在嘗試在系列標簽中顯示“ z”。 但是不能。 出錯
"BindingExpression path error: 'z' property not found on 'object' ''SeriesLabelItem' (HashCode=58379838)'. BindingExpression:Path=z; DataItem='SeriesLabelItem' (HashCode=58379838); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')"
我的代碼如下
<dxc:BarSideBySideSeries2D DisplayName="Last Year" Brush="Goldenrod" ArgumentScaleType="Qualitative" ArgumentDataMember="x"
ValueDataMember="y" ToolTipEnabled="False" Name="Last" DataSource="{Binding ChartData}">
<dxc:BarSideBySideSeries2D.Label >
<dxc:SeriesLabel Visible="True" VerticalAlignment="Center" Name="lblLast" DataContext="{Binding ChartData}">
<dxc:SeriesLabel.ElementTemplate>
<DataTemplate>
<TextBlock Text="{Binding z}" Foreground="Black" FontSize="10" FontWeight="Bold" Background="White">
</TextBlock>
</DataTemplate>
</dxc:SeriesLabel.ElementTemplate>
</dxc:SeriesLabel>
</dxc:BarSideBySideSeries2D.Label>
<dxc:BarSideBySideSeries2D.Model>
<dxc:SimpleBar2DModel/>
</dxc:BarSideBySideSeries2D.Model>
</dxc:BarSideBySideSeries2D>
元素模板對要應用模板的元素的數據上下文一無所知。 在模板內部,您只能綁定到SeriesLabelItem的屬性。 要提供自定義文本來標記,可以使用CustomDrawSeriesPoint事件。 方法的實現如下所示:
private void chartControl_CustomDrawSeriesPoint(object sender, CustomDrawSeriesPointEventArgs e)
{
MyClass point = e.SeriesPoint.Tag as MyClass;
if (point != null)
{
e.LabelText = point.z;
}
}
模板將如下所示:
<DataTemplate>
<TextBlock Text="{Binding Text}" Foreground="Black" FontSize="10" FontWeight="Bold" Background="White">
</TextBlock>
</DataTemplate>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.