在GridView MVVM中设置单元格样式

时间:2013-08-30 06:56:20

标签: c# wpf gridview mvvm

我的gridView

有这个单元格模板
   <GridViewColumn.CellTemplate>
     <DataTemplate>
        <Border Style="{StaticResource ShadowBorderStyle}"  Height="75" Width="100">
          <TextBox Text="{Binding MyText}" />
         </Border>
     </DataTemplate>
   </GridViewColumn.CellTemplate>

如何设置单元格的样式,以便在单元格上按下鼠标时,它应该在其上显示红色边框。也可以对GridView中的所有单元格执行此操作。我正在使用MVVM,所以我不想在后面做代码。

2 个答案:

答案 0 :(得分:1)

  <DataGrid>
      <DataGrid.Resources>
         <Style TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                  <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
                     <BeginStoryboard>
                          <Storyboard>
                             <ColorAnimation
                                    Storyboard.TargetProperty="(Border.BorderBrush).(Color)"
                                    To="Red"
                                    Duration="0:0:0" />
                          </Storyboard>
                      </BeginStoryboard>                    
                  </EventTrigger>                
              </Style.Triggers>            
          </Style>
      </DataGrid.Resources>
 </DataGrid>

答案 1 :(得分:0)

在单元格模板中放置文本框的边框:

<Border.Style>
    <Style TargetType="{x:Type Border}">
            <Style.Triggers>
                <Trigger Property="IsMouseCaptureWithin" Value="True">
                    <Setter Property="BorderBrush" Value="Red"/>
                    <Setter Property="BorderThickness" Value="2"/>
                </Trigger>
            </Style.Triggers>
        </Style>
</Border.Style>

看看这对你有帮助。

由于