2014-05-20 33 views
1

我的DataGrid這樣的:結合的數據網格的SelectedItem

<DataGrid AutoGenerateColumns="False" IsReadOnly="True" SelectionMode="Single" GridLinesVisibility="None"> 
    <DataGrid.Columns> 
     <DataGridTemplateColumn> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <Border BorderThickness="{Binding ???}" BorderBrush="Black" > 
         <Grid></Grid> 
        </Border> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
    </DataGridTemplateColumn> 
</DataGrid> 

,我需要在CellTemplate結合邊境的了borderThickness到DataGrid.SelectedItem。例如:如果單元格在選定行中的厚度必須是1,1,1,1否則爲零。 (我知道轉換器)。這個怎麼做?

回答

1

可以使用觸發器來實現:

<DataGrid AutoGenerateColumns="False" IsReadOnly="True" SelectionMode="Single" GridLinesVisibility="None"> 
     <DataGrid.Columns> 
      <DataGridTemplateColumn> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <Border BorderBrush="Black" > 
          <Border.Style> 
           <Style TargetType="Border"> 
            <Style.Triggers> 
             <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGridCell}}" Value="True"> 
              <Setter Property="BorderThickness" Value="1"></Setter> 
             </DataTrigger> 
            </Style.Triggers> 

           </Style> 
          </Border.Style> 
          <Grid></Grid> 
         </Border> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
     </DataGrid.Columns> 
    </DataGrid> 

OR

直接設置CellStyle像

 <DataGrid AutoGenerateColumns="False" IsReadOnly="True" SelectionMode="Single" GridLinesVisibility="None"> 
     <DataGrid.Columns> 
      <DataGridTemplateColumn> 
       <DataGridTemplateColumn.CellStyle> 
        <Style TargetType="DataGridCell"> 
         <Style.Triggers> 
          <Trigger Property="IsSelected" Value="True"> 
           <Setter Property="BorderThickness" Value="1"></Setter> 
           <Setter Property="BorderBrush" Value="Black"></Setter> 
          </Trigger> 
         </Style.Triggers> 

        </Style> 
+0

這不行。 –

+0

現在試試..你將不得不在DataTrigger上設置Value = True或者建議使用替代方法 – Nitin

+0

不,我需要使用模板,因爲我在邊界內有很多綁定的內容。 –