2013-02-08 74 views
1

我的客戶要求我們有一個DataGrid的表單,從數據庫中的實際數據的角度來看,這個表單是可以轉換的。WPF - 只有DataGridColumn中的特定單元格才具有CheckBox ...是否有可能?

下面是我的數據庫的(簡化)外觀。

│id|stuff│flag│column│column│column│ 
------------------------------------ 
│35| AAA │ 0 │ etc. │ blah │ yadda│ 
│58│ BBB │ 1 │ etc. │ blah │ yadda│ 
│78│ CCC │ 0 │ etc. │ blah │ yadda│ 

下面是我被要求創建。

│HEADER│CODE│DATA1│DATA2│DATA3│ 
------------------------------- 
│ID | #1 │ 35│  58│  78│ 
│STUFF │ #2 │ AAA│ BBB│ CCC│ 
│FLAG │ #3 │ 0│  1│   0│ 
│COLUMN│ #4 │ etc.│ etc.│ etc.│ 
│COLUMN│ #5 │ blah│ blah│ blah│ 
│COLUMN│ #6 │yadda│yadda│yadda│ 

標誌欄應該是0或1,所以我想這列是一個DataGridCheckBoxColumn,但它轉動!當然,我可以(輕鬆地)讓單元格在驗證過程中只接受1或0,但是我仍然想知道是否可以使列中的指定單元格具有CheckBox

回答

1

我想看看this WPF horizontal Datagrid answer利用<RotateTransform Angle="-90"/>樞軸DataGrid。


下面是複製的XAML答案@dimaKudr

<DataGrid.LayoutTransform> 
    <TransformGroup> 
     <RotateTransform Angle="-90"/> 
     <ScaleTransform ScaleX="1" ScaleY="-1" /> 
    </TransformGroup> 
</DataGrid.LayoutTransform> 

<DataGrid.ColumnHeaderStyle> 
    <Style TargetType="{x:Type DataGridColumnHeader}" 
      BasedOn="{StaticResource {x:Type DataGridColumnHeader}}"> 
     <Setter Property="LayoutTransform"> 
      <Setter.Value> 
       <TransformGroup> 
        <RotateTransform Angle="-90"/> 
        <ScaleTransform ScaleX="1" ScaleY="-1" /> 
       </TransformGroup> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</DataGrid.ColumnHeaderStyle> 

之後,我會看看創建DataGridTemplateColumn和使用與CheckBox一個CellTemplate內綁定到你的國旗財產,使用轉換器將0和1轉換爲真/假

<DataGrid> 
    <DataGrid.Columns> 
     <DataGridTemplateColumn x:Name="FlagColumn" Header="Flag" Width="25" IsReadOnly="False"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> 
         <CheckBox IsChecked="{Binding Flag, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource FlagConverter}" /> 
        </StackPanel> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid> 
+0

謝謝,但它可能會帶來另一個問題... – Quv 2013-02-13 13:58:19

+0

@Quv什麼樣的問題? – 2013-02-13 15:43:07

+1

我personnaly不建議RotateTransform技巧來獲得「水平」DataGrid。當我嘗試它時,它帶來了許多無法解決的佈局問題,我致力於以不同方式解決問題。 – Sisyphe 2013-02-13 15:58:59

相關問題