Silverlight Datagridtemplatecolumn vs. Datagridtextcolumn
-
28-09-2019 - |
Frage
Warum funktionierts ...
<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>
Aber das bedeutet nicht ...
<data:DataGridTextColumn Header="YTD v. Exchange"
Binding="{Binding ytdExchangeReturn.value, Converter={StaticResource fcFixedDecimalConverter}}"
Foreground="{Binding ytdExchangeReturn.value, Converter={StaticResource fcForegroundValueConverter}}"/>
I get 'System.Windows.Markup.XamlParseException: AG_E_PARSER_BAD_PROPERTY_VALUE' für die zweite. Das Problem gilt ony in den Vordergrund Konverter, die Bindung ist in Ordnung.
Lösung
Ich denke, das Problem ist, dass der Vordergrund Eigenschaft des Datagridtextcolumn ist keine Abhängigkeitseigenschaft und daher nicht für die Datenbindung verwendet werden kann.
Die Vordergrund Eigenschaft des Textblock für die Celltemplate verwendet wird, ist eine Abhängigkeitseigenschaft und damit ein gültiges Ziel für die Datenbindung.
http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.foreground(v=vs.95).aspx
Referenz:
http://forums.silverlight.net/forums/p /151524/338879.aspx#338879