c# - 当属性设置为值时禁用行选择数据网格 WPF

标签 c# wpf

如果属性设置为某个值,我想禁用行选择

我试过:

<DataGrid ...>
   <DataGrid.CellStyle>
     <Style TargetType="DataGridCell">
       <Style.Triggers>
          <DataTrigger Binding="{Binding Path=IsBusy}" Value="True">
            <Setter Property="here I don't know" Value="False" />
          </DataTrigger>
       </Style.Triggers>
     </Style>
   </DataGrid.CellStyle>
</DataGrid>

我不想禁用整个 DataGrid,因为水平滚动不再可滚动,所以我避免了这种情况。

最佳答案

如果您想取消选择整行,请尝试使用 RowStyle 并在您的数据触发器为真时将属性 IsSelected 设置为 false:

<DataGrid>
   <DataGrid.RowStyle>
     <Style TargetType="DataGridRow">
       <Style.Triggers>
          <Setter Property="Foreground" Value="Black" />
          <DataTrigger Binding="{Binding Path=IsBusy}" Value="True">
            <Setter Property="IsSelected" Value="False" />
          </DataTrigger>
          <Trigger Property="IsSelected" Value="False">
            <Setter Property="Foreground" Value="Black" />
          </Trigger>
       </Style.Triggers>
     </Style>
   </DataGrid.RowStyle>
   <DataGrid.CellStyle>
       <Style TargetType="DataGridCell">
           <Setter Property="Foreground" Value="Black" />
           <Style.Triggers>
               <Trigger Property="IsSelected" Value="True">
                   <Setter Property="Background" Value="{x:Null}" />
                   <Setter Property="BorderBrush" Value="{x:Null}" />
               </Trigger>
           </Style.Triggers>
       </Style>
   </DataGrid.CellStyle>
</DataGrid>

关于c# - 当属性设置为值时禁用行选择数据网格 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56055718/

相关文章:

c# - 如何使用 Microsoft Graph 创建 Microsoft Teams session 作为应用程序?

c# - 在具有扩展选择模式的 WPF 列表框中取消选择

c# - 在 WPF 应用程序 C# 中设置所有矩形的背景

wpf - 直接加载 xaml 的最佳方法是什么?

c# - 从枚举中获取 XmlEnumAttribute

c# - ASP.NET TreeView 复选框表单标签

c# - WPF 和 Orchestra 入门

wpf - 在 wpf 中创建 SelectionChangedEventArgs 的实例

c# - DateTime.ParseExact 给出错误 : String was not recognized as a valid DateTime

c# - 非常冗长的存储过程状态