سؤال

لماذا هذا العمل ...

<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' للثاني. تنطبق المشكلة على ony على المحول الأمامي ، والربط جيد.

هل كانت مفيدة؟

المحلول

أعتقد أن المشكلة هي أن الخاصية الأمامية لـ DataGridTextColumn ليست خاصية التبعية وبالتالي لا يمكن استخدامها في مجال البيانات.

http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridTextColumn.ForeGround(V=Vs.95).aspx

خاصية المقدمة من 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#setting_properties_data_binding

http://forums.silverlight.net/forums/p/151524/338879.aspx#338879

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top