我想在图表上数据点的位置向图表添加标签。例如,柱形图的每列顶部都有一个标签。
我需要以编程方式执行此操作,并且标签应该与图表轴上的标签不同。例如,除了为点图表提供数据的 KeyValuePair[] 之外,我还需要另一个为图表提供标签的数组。我还必须动态地执行此操作,而不是在 XAML 中。
目前,我使用 SQL 查询创建图表数据。理想情况下,我想使用 SQL 查询中的第三行来填充图表标签。
我想在图表上数据点的位置向图表添加标签。例如,柱形图的每列顶部都有一个标签。
我需要以编程方式执行此操作,并且标签应该与图表轴上的标签不同。例如,除了为点图表提供数据的 KeyValuePair[] 之外,我还需要另一个为图表提供标签的数组。我还必须动态地执行此操作,而不是在 XAML 中。
目前,我使用 SQL 查询创建图表数据。理想情况下,我想使用 SQL 查询中的第三行来填充图表标签。
好吧,我想通了。我制作了一个独立值和标签的字典,将其设置为我的窗口的 DataContext,并使用 IValueConverter 将文本框绑定到它,该 IValueConverter 使用依赖值来使用字典映射标签。
<TextBlock
x:Name="textBox"
Text="{Binding Key, Converter={StaticResource annotationsConverter}}"
FontWeight="Bold"
Margin="2"
TextWrapping="Wrap"/>
和
public class myAnnotationsConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (MainWindow.annotations != null)
{
try
{
return MainWindow.annotations[value as string];
}
catch (KeyNotFoundException e)
{
return "NULL";
}
}
throw new NotFiniteNumberException();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotFiniteNumberException();
}
}
可能的改进:在类别轴中每个类别支持多列。因此,如果我有 2007 年 6 月的三个条形图,请为所有条形图保留一个不同的标签。