2009-11-11 4 views
0

DataGrid의 바인딩 값을 기반으로 배경색을 반환하는 변환기가 있습니다. 이것은 WPF에서 훌륭하게 작동하지만이 코드를 실버 라이트에 넣으면 행복하지 않습니다.WPF to Silverlight, TargetType 문제 발생

여기에 일부 게시물을 읽으면 사용할 수없는 것 같습니다. 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}" /> 
    .... 
    .... 

어떻게 제 바인딩을 유지하고 실버 라이트를 행복하게 할 수 있습니까?

감사합니다, 호반

답변

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>