さて、私はそれを理解しました。独立した値とラベルのディクショナリを作成し、それをウィンドウの DataContext として設定し、ディクショナリを使用してラベルをマップするために依存値を使用する 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 月に 3 つのバーがある場合、それらすべてに個別のラベルを付けます。