Silverlight datagridtemplatecolumn vs. datagridTextColumn
-
28-09-2019 - |
質問
なぜこれが機能するのですか...
<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>
しかし、これは...
<data:DataGridTextColumn Header="YTD v. Exchange"
Binding="{Binding ytdExchangeReturn.value, Converter={StaticResource fcFixedDecimalConverter}}"
Foreground="{Binding ytdExchangeReturn.value, Converter={StaticResource fcForegroundValueConverter}}"/>
'System.Windows.Markup.XamlParseException:AG_E_PARSER_BAD_PROPERTY_VALUE'を2番目に取得します。問題は前景コンバーターに適用され、バインディングは問題ありません。
解決
問題は、DatagridTextColumnの前景特性は依存関係プロパティではないため、データバインディングに使用できないということだと思います。
セルテンプレートに使用されるテキストブロックのフォアグラウンドプロパティは依存関係のプロパティであり、したがってデータバインディングの有効なターゲットです。
http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.foreground(v=vs.95).aspx
参照:
http://msdn.microsoft.com/en-us/library/cc221408(vs.95).aspx#setting_properties_data_binding
http://forums.silverlight.net/forums/p/151524/338879.aspx#338879
所属していません StackOverflow