В WPF, как я могу префикс всех ячеек в редактируемом столбце datagrid значком доллара ($
) и все еще привязывать к свойству объекта CLR типа decimal?WPF, префикс ячейки datagrid
Документация MSDN имеет тенденцию указывать на стили как способы настройки внешнего вида элементов в datagrid (см. here). Однако я не хочу устанавливать свойство. Я хочу префикс данных знаком доллара.
Я пробовал использовать data templates. Вот выдержка из моего XAML, показывающий шаблон данных:
...
<Window.Resources>
<DataTemplate DataType="{x:Type Binding}" x:Key="myDataTemplate">
<TextBlock>
<Run>$</Run>
<TextBox Text="{Binding}"></TextBox>
</TextBlock>
</DataTemplate>
</Window.Resources>
...
Однако, единственное место, где я могу найти, чтобы включить это в DataGrid находится в HeaderTemplate
собственности DataGridTextColumn
, так как в этом отрывке дальше в том же XAML. Это отображает $
, за которым следует только текстовое поле в заголовке. Я бы хотел, чтобы это произошло не в заголовке, а во всех остальных ячейках этой строки.
...
<DataGrid.Columns>
<DataGridTextColumn Header="Header1"
Binding="{Binding Path=decimalProperty}"
HeaderTemplate="{StaticResource myDataTemplate}">
</DataGridTextColumn>
</DataGrid.Columns>
...
Конечно, есть код-сзади, но скелетная контур здесь должен описать то, что я пытаюсь сделать.
Простое изменение свойства, чтобы ввести строку в код и префикс знака доллара, не является вариантом.
Вы можете использовать DataGridTemplateColumn вместо DataGridTextColumn? –
Значит, вы не хотите использовать 'CellStyle'? Который предназначен для того, что вы хотите – Guerudo
@Guerudo извините, чтобы ввести в заблуждение, я просто не могу понять, как сделать CellStyle делать это. Ответ с помощью CellStyle был бы отличным. –