WPF到Silverlight,绕过TargetType问题

时间:2009-11-11 18:14:11

标签: c# wpf silverlight binding

我有一个转换器,它根据DataGrid上的绑定值返回背景颜色。这在WPF中运行得很好但是当我把这个代码放到silverlight中时它不高兴。

在这里阅读一些帖子似乎我无法使用TargetType="{x:Type my:DataGridCell}" 建议的答案是简单地使用TargetType="my:DataGridCell",但这又不起作用。

另一个建议是给样式一个Key,但是当我的样式设置在我的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}" />
   ....
   ....

如何保持我的约束力,让银光开心?

谢谢, 钢钣

1 个答案:

答案 0 :(得分:0)

不是完美的解决方案,但我使用数据得到了我想要的结果:而不是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>