2009-11-11 61 views
0

我有一個轉換器,它根據DataGrid上的綁定值返回背景顏色。這在WPF中效果很好,但是當我把這段代碼放入Silverlight時,它並不開心。WPF到Silverlight,繞過TargetType問題

在這裏閱讀一些帖子,似乎我不能使用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}" /> 
    .... 
    .... 

我該如何保持我的約束力,並讓silverlight變得快樂?

感謝, 鋼鈑

回答

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>