Silverlight DataGridTemplateColumn vs. DataGridTextColumn
Почему это работает...
<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' для второго. Проблема распространяется только на конвертер Foreground, привязка в порядке.
1 ответ
Решение
Я думаю, что проблема в том, что свойство Foreground DataGridTextColumn не является свойством зависимости и, следовательно, не может использоваться для привязки данных.
Свойство Foreground TextBlock, используемое для CellTemplate, является свойством зависимости и, следовательно, является допустимой целью для привязки данных.
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