2014-05-20 32 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

不,我需要使用模板,因为我在边界内有很多绑定的内容。 –