Странное поведение в DataGrid SilverLight 3 Control - PullRequest
2 голосов
/ 18 марта 2010

Вот мой код Xaml. Здесь я изменил передний план клетки в зависимости от текущего возраста человека.

<data:DataGridTemplateColumn Header="First Name" Width="150" MinWidth="150" CanUserReorder="False" SortMemberPath="FirstName">
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate >
                        <TextBlock   Foreground ="{Binding Path=DateOfBirth,Mode=OneWay,Converter={StaticResource CellColor}}" Text="{Binding FirstName}" ToolTipService.ToolTip="{Binding FirstName}"  FontFamily="Arial" FontSize="11"  VerticalAlignment="Center" Margin="5,0,0,0" />
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>
            </data:DataGridTemplateColumn>
            <data:DataGridTextColumn Foreground ="{Binding Path=DateOfBirth,Mode=OneWay,Converter={StaticResource CellColor}}"  Header="Last Name" Width="150" MinWidth="150" Binding="{Binding LastName}" CanUserSort="True" IsReadOnly="True" CanUserReorder="False"/>

Когда я запускаю приведенный выше код, он возвращает следующее исключение

AG_E_PARSER_BAD_PROPERTY_VALU

Мой вопрос заключается в том, что когда я удаляю конвертер Foreground из столбца DataGridTextColumn, он работает нормально, так как конвертер Foreground применяется в столбце DataGridTemplateColumn, который не исключается. Но когда я использовал тот же конвертер для DataGridTextColumn, он бросил исключение почему, кто-нибудь может знать, почему это такое поведение

спасибо заранее.

Извините, Джош Эйнштейн Вот мое возвращаемое значение из конвертера

        if (intAge > 25)
            return new SolidColorBrush(Colors.Red);
        else
            return new SolidColorBrush(Colors.White);
...