Как вы форматируете в коде AxisLabel для DependentRangeAxis? - PullRequest
2 голосов
/ 29 июня 2011

Я не могу заставить ось отформатировать как валюту, любая идея?

Что я делаю не так?Мне нужно иметь возможность изменять форматирование на лету, и для этого теста я хотел установить его в качестве валюты для оси Y на шкале значений.

Кто-нибудь?

Спасибо ...

    var columnSeries = new ColumnSeries
                                 {   Title = reportProcedureNode.Value,
                                     IndependentValuePath = "PrimaryKey",
                                     DependentValuePath = "Value",
                                     IndependentAxis = new CategoryAxis { Orientation = AxisOrientation.X, ShowGridLines = false, Location = AxisLocation.Bottom},
                                     DependentRangeAxis = new LinearAxis(){Orientation = AxisOrientation.Y, ShowGridLines = false}
                                 };

        var labelStyle = new Style(typeof(AxisLabel));
        labelStyle.Setters.Add(new Setter(AxisLabel.StringFormatProperty, "{}{0:C0}"));

        var axis = (LinearAxis)columnSeries.DependentRangeAxis;
        axis.AxisLabelStyle = labelStyle;

1 Ответ

3 голосов
/ 29 июня 2011

В моей WPF4-версии инструментария построения диаграмм ваш код падает.Мне нужно было изменить:

labelStyle.Setters.Add(new Setter(AxisLabel.StringFormatProperty, "{}{0:C0}"));

на:

labelStyle.Setters.Add(new Setter(AxisLabel.StringFormatProperty, "{0:C0}"));

То есть удалить {}.{} исходит из синтаксиса расширения разметки:

и требуется только при анализе XAMLкак расширение разметки внутри "{...}".

Поскольку вы устанавливаете свойство напрямую, расширение разметки не используется и, в том числе, предотвращает просмотр формата реальной валюты.

...