WPF для Silverlight, обойти проблему TargetType - PullRequest
0 голосов
/ 11 ноября 2009

У меня есть конвертер, который возвращает цвет фона на основе значения привязки в DataGrid. Это прекрасно работает в WPF, но когда я помещаю этот код в silverlight, это не радует.

Читая некоторые посты здесь, кажется, я не могу использовать TargetType="{x:Type my:DataGridCell}" Предложенный ответ состоял в том, чтобы использовать просто TargetType="my:DataGridCell", но опять же это не сработало.

Другое предложение состояло в том, чтобы дать стилю ключ, но так как мой стиль установлен в моей DataGrid, я не могу переместить его в Page.Resources (и, таким образом, дать ему ключ), так как мне нужно привязать его. Вот так:

    <data:DataGrid x:Name="gridResults" CanUserReorderColumns="True" HorizontalAlignment="Left" IsReadOnly="True" AutoGenerateColumns="False" SelectionChanged="gridResults_SelectionChanged" ItemsSource="{Binding}">
        <data:DataGrid.CellStyle>
            <Style TargetType="{x:Type data:DataGridCell}">
                <Setter Property="Background" Value="{Binding SoldIn, Converter={StaticResource conFor}}" />
            </Style>
        </data:DataGrid.CellStyle>
            <data:DataGrid.Columns>
            <data:DataGridTextColumn
                     Header="Outlet"
                     Width="Auto"
                     Binding="{Binding Outlet}" />
   ....
   ....

Как я могу сохранить свою привязку в такте и сделать Silverlight счастливым?

Спасибо, Кохан

1 Ответ

0 голосов
/ 12 ноября 2009

Не идеальное решение, но я получил желаемые результаты, используя вместо этого данные: DataGridTemplateColumns.

            <data:DataGridTemplateColumn Header="Outlet">
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Border Background="{Binding SoldIn, Converter={StaticResource conFor}}">
                            <ContentControl Content="{Binding Outlet}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" />
                        </Border>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>
            </data:DataGridTemplateColumn>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...