- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
样式化 DataGrid,我想通过将触发器应用于 ControlTemplate 或 Style 来区分其最后一列标题。例如:
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<Grid>
<Border>
<ContentPresenter
DataContext="{TemplateBinding DataContext}"
Content="{Binding}"
VerticalAlignment="Center"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="DisplayIndex" Value="{Binding ???}">
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但是我必须将它绑定(bind)到什么值?有 TemplateBinding、TemplatedParent 和许多其他绑定(bind),但即使我知道要使用哪一个,那么我必须在其中寻找什么属性呢? (好吧,显然有某种具有 Count 或 Length 属性的集合,但最好能看到确切的东西)
对于在运行时解析的所有不同绑定(bind),必须有方法来调查我要绑定(bind)的确切类型,对吗?我怎样才能找到它?
最佳答案
您可以获得DataGridCellsPanel
的Children Count
,它是DataGridColumnHeader
的父级,并使用转换器
来检查LastLevelColumn
<local:Converter x:Key="myConverter"/>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<Grid x:Name="gridSource">
<Grid.Tag>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="Children.Count" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridCellsPanel}}"/>
<Binding Path="DisplayIndex" RelativeSource="{RelativeSource TemplatedParent}"/>
</MultiBinding>
</Grid.Tag>
<Border x:Name="myBorder">
<ContentPresenter
DataContext="{TemplateBinding DataContext}"
Content="{Binding}"
VerticalAlignment="Center"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="Tag" SourceName="gridSource" Value="true">
<!-- Setter's -->
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
转换器:
public class Converter : IMultiValueConverter
{
public object Convert(object[] values, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values[0] is int && values[1] is int)
return (int)values[0] == (int)values[1] + 1 ? "true" : "false";
else
return "false";
}
public object[] ConvertBack(object value, System.Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new System.NotImplementedException();
}
}
关于wpf - 如何使用 Trigger 检查 DataGridColumnHeader 的 ColumnIndex 是否是最后一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28422455/
如果您只想在没有上下文的情况下查看问题,请跳到底部 我正在构建的 Android 应用程序有一个包含三列的简单表格: _id INTEGER PRIMARY KEY..., name TEXT, co
WinForm 的一些事件处理程序 DataGridView有 DataGridViewCellEventArgs作为参数和 ColumnIndex作为该参数的属性。 ColumnIndex是一个数字
我有一个 NSTableView,可以根据行的数据值在不同的单元格 View 中交换。当模型更改时,我重新加载表,表的委托(delegate)将为新数据提供正确的表单元格 View 。 表格的单元格
我需要显示隐藏列的列索引,我在 columnShowing 事件中处理它,根据文档,我们可以使用 ui.columnIndex 获取它。但在 ui.columnKey 给出正确值的地方,它是未定义的。
样式化 DataGrid,我想通过将触发器应用于 ControlTemplate 或 Style 来区分其最后一列标题。例如:
尝试在 10.7 中对基于 View 的 NSTableView 使用 reloadDataForRowIndexes:columnIndexes: 。但有重画问题。如果我编辑该对象并调用 reloa
任何人都可以帮助我,我不知道如何解决这个问题。实际上,我在 ListView 中获取了联系人列表,其中包含我的应用程序中的名称和号码。当我从列表中单击列表编号时,它会直接调用列表中的最后一个编号。示例
当我尝试从 C++ 项目中的 MySQL 数据库中选择一些行时,出现错误: MySQL error code: 0 MySQL_Prepared_ResultSet::getInt: invalid
当我遇到下面的错误消息时,我正在尝试使用 JDBC 身份验证来进行 Spring 安全。我正在尝试将 User 类中的所有电子邮件和密码注册为有效登录。我不确定我的 sql 语句或我的 User 类是
我是一名优秀的程序员,十分优秀!