DataGrid: динамический StringFormat - PullRequest
0 голосов
/ 28 июля 2011

Я столкнулся с проблемой, которую, как я предполагал, было бы очень легко решить, но ... Оказывается, это не так просто.

Вот ситуация: я создал пользовательский UserControl, который наследуется отWPFToolkit DataGrid (мне нужно работать в .NET 3.5: /).

Этот элемент управления представляет собой матрицу, отображающую финансовые значения, и пользователь должен иметь возможность выбирать формат отображения (процент, абсолют, процент)с 1 или 2 десятичными знаками ...).

И ... Может быть, я просто тупой, но я не могу решить это.У моего элемента управления есть пользовательский DependencyProperty, который содержит полную ссылку на рыночные данные, а затем отправляет определенные части ссылки на конкретные свойства (например, разница в ценах составляет ItemsSource).Поскольку пользователи могут изменять отображаемую информацию (цены, разницу в ценах, вчерашние цены, другие случайные финансовые данные ...), формат отображения будет регулярно меняться И пользователю будет разрешено выбирать его самостоятельно.

Мои ячейки простоследуйте Style, определенному в моем ResourceDictionary:

<Style x:Key="CellStyle" TargetType="{x:Type tk:DataGridCell}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type tk:DataGridCell}">
                    <Grid Background="{TemplateBinding Background}">
                        <ContentPresenter
                            HorizontalAlignment="Center"
                                      VerticalAlignment="Center"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Я не буду работать с Binding StringFormat, потому что я не связываю ItemsSource (я установил его вкод после изменения рыночного ссылочного свойства)

Я уже видел этот ответ, предлагая конвертер

Однако, похоже, я не знаю, куда мне добавитьконвертер в клетки ...

Есть идеи?

Спасибо!

1 Ответ

1 голос
/ 01 августа 2011

Я наконец-то решил эту проблему, добавив логический шаг в Binding: теперь я установил для ÌtemsSource значение string[], сгенерированное из оригинального double[], используя ToString(CurrentFormat) при необходимости:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...