Silverlight DataGridTemplateColumn vs. DataGridTextColumn
-
28-09-2019 - |
Domanda
Perché questo lavoro ...
<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>
Ma questo non ...
<data:DataGridTextColumn Header="YTD v. Exchange"
Binding="{Binding ytdExchangeReturn.value, Converter={StaticResource fcFixedDecimalConverter}}"
Foreground="{Binding ytdExchangeReturn.value, Converter={StaticResource fcForegroundValueConverter}}"/>
ottengo 'System.Windows.Markup.XamlParseException: AG_E_PARSER_BAD_PROPERTY_VALUE' per il secondo. Il problema si applica girarci intorno al convertitore di primo piano, il legame va bene.
Soluzione
Credo che il problema è che la proprietà Primo piano del DataGridTextColumn non è una proprietà di dipendenza e quindi non può essere utilizzato per l'associazione dati.
La proprietà Primo piano di TextBlock utilizzato per la CellTemplate è una proprietà di dipendenza e quindi un bersaglio valido per l'associazione dati.
http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.foreground(v=vs.95).aspx
Riferimento:
http://forums.silverlight.net/forums/p /151524/338879.aspx#338879