Silverlight DataGridTemplateColumn contre DataGridTextColumn
-
28-09-2019 - |
Question
Pourquoi ce travail ...
<data:DataGridTemplateColumn Header="YTD v. Exchange" x:Name="YTDvExchange" Visibility="Collapsed" CanUserSort="True" SortMemberPath="ytdExchangeReturn.value">
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock TextAlignment="Right" VerticalAlignment="Center"
Text="{Binding ytdExchangeReturn.value, Converter={StaticResource fcFixedDecimalConverter}}"
Foreground="{Binding ytdExchangeReturn.value, Converter={StaticResource fcForegroundValueConverter}}"/>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
Mais cela ne ...
<data:DataGridTextColumn Header="YTD v. Exchange"
Binding="{Binding ytdExchangeReturn.value, Converter={StaticResource fcFixedDecimalConverter}}"
Foreground="{Binding ytdExchangeReturn.value, Converter={StaticResource fcForegroundValueConverter}}"/>
Je reçois 'System.Windows.Markup.XamlParseException: AG_E_PARSER_BAD_PROPERTY_VALUE' pour le second. Le problème se pose ony au convertisseur de premier plan, la liaison est très bien.
La solution
Je pense que le problème est que la propriété Premier plan de la DataGridTextColumn n'est pas une propriété de dépendance et ne peut donc pas être utilisé pour la liaison de données.
La propriété de premier plan TextBlock utilisé pour la CellTemplate est une propriété de dépendance et donc une cible valide pour la liaison de données.
http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.foreground(v=vs.95).aspx
Référence:
http://forums.silverlight.net/forums/p /151524/338879.aspx#338879