在GridView MVVM中设置单元格样式

本文关键字:单元格 样式 设置 GridView MVVM | 更新日期: 2023-09-27 18:29:32

我有这个网格视图的单元格模板

   <GridViewColumn.CellTemplate>
     <DataTemplate>
        <Border Style="{StaticResource ShadowBorderStyle}"  Height="75" Width="100">
          <TextBox Text="{Binding MyText}" />
         </Border>
     </DataTemplate>
   </GridViewColumn.CellTemplate>

如何设置单元格的样式,使鼠标按在单元格上时,它应该在上面显示红色边框。是否可以对GridView中的所有单元格都这样做。我正在使用MVVM,所以我不想在代码后面做它。

在GridView MVVM中设置单元格样式

  <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>

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

<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>

看看这对你有没有帮助。

感谢