基于 WPF DataGrid 中的 DataGridTemplateColumn 设置列样式

2024-01-09

我正在使用 WPF DataGrid,其中如果该行可编辑,其中一列需要显示“编辑”超链接 - 这由该行的支持模型中的布尔标志指示。我能够使用 DataGridTemplateColumn 实现这一点 - 没有问题。然而,对整行的附加要求是在选择该行时不显示任何突出显示(默认情况下为蓝色背景)。我已经能够通过定义具有透明背景的 DataGridCell 样式在其他列上实现此目的,例如

<DataGridTextColumn
    Header="Id"
    Binding="{Binding Path=Id}"
    HeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
    CellStyle="{StaticResource DataGridCellStyle}" />

其中 DataGridCellStyle 定义如下:

<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Setter Property="Background" Value="Transparent" />
    ...
</Style>

但是,有问题的列(DataGridTemplateColumn)不提供“CellStyle”属性,我可以使用该属性来关闭选择突出显示。所以我的问题是使用 DataGridTemplateColumn 时如何设置单元格样式?这是我对满足第一个要求的列的实现(即,如果该行可编辑,则显示“编辑”超链接):

<DataGridTemplateColumn
    Header="Actions"
    HeaderStyle="{StaticResource CenterAlignedColumnHeaderStyle}">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock
                Visibility="{Binding Path=Editable, Converter={StaticResource convVisibility}}"
                Style="{StaticResource CenterAlignedElementStyle}">
                    <Hyperlink
                        Command="..."
                        CommandParameter="{Binding}">
                        <TextBlock Text="Edit" />
                    </Hyperlink>
            </TextBlock>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

Thanks.


至少在WPF4中,有一个DataGridTemplateColumns的CellStyle:http://msdn.microsoft.com/en-us/library/cc189163.aspx http://msdn.microsoft.com/en-us/library/cc189163.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 WPF DataGrid 中的 DataGridTemplateColumn 设置列样式 的相关文章

  • WPF 组合框如果只有 1 项则自动选择

    我有一个组合框 我绑定到一个可观察的集合 它会发生变化 根据选择的公司 并且大量公司将有一个帐户 项目 因此我想知道制作组合框的最佳方法是什么如果 ItemsSource 中只有 1 个项目 则设置 SelectedItem 否则将其保留为
  • 如何在MVVM中实现对话框架构

    我正在开发一个基于 PRISM 框架 Unity Container 的 WPF 4 0 MVVM 应用程序 我想知道在 mvvm 模式中实现对话框的最佳方法是什么 我计划在我的应用程序中使用相当多的东西 所以我想要一些可重用的东西 由于您
  • 如何在 WPF 中实现虚线或点线边框?

    我有一个ListViewItem我正在申请Style到 我想把灰色虚线作为底部Border 我怎样才能在 WPF 中做到这一点 我只能看到纯色画笔 这在我们的应用程序中效果很好 允许我们使用真正的边框而不是乱用矩形
  • 如何在wpf中打印屏幕截图

    首先我英语说得不太流利 反正 我正在尝试这样做 然而这还不是第三天 我现在正在做的是屏幕捕获后的程序屏幕打印 我参考这段代码 https social msdn microsoft com Forums windows en US 0623
  • WPF 元素宿主内存泄漏

    我在 Windows 窗体上使用元素主机时遇到奇怪的内存泄漏 我有一个主窗体 它打开另一个窗体 该窗体上只有 elementhost 控件 此时 它没有 wpf 控件子控件 只能打开 1 个主机表单 每次我打开窗体时 应用程序内存都会增加2
  • 滚动 X 轴绘图区域 - Silverlight 柱系列

    我有一个工作正常的柱形系列图表 我有一个需要添加的功能 我希望水平滚动能够启用到 x 轴的绘图区域 这是屏幕截图 如果您看到屏幕截图 我有 6 个项目 并且由于项目数量较多 条形图非常细 所以假设如果我有 20 个项目 那么条形图将根本不可
  • 获取代码中的绑定结果

    我可能正在以错误的方式寻找这个 但是 有没有办法通过代码获取绑定的结果值 可能是一些显而易见的东西 但我就是找不到它 您只需致电ProvideValue的绑定方法 困难的部分是你需要通过有效的IServiceProvider到方法 编辑 实
  • WPF HierarchicalDataTemplate 不会在属性更改时更新 ItemsSource

    这是一些 XAML
  • 更改鼠标悬停时的矩形背景

    所以我有一个没有背景的矩形 当用户将鼠标悬停在其上时 我想给它一个背景渐变 然后当鼠标离开矩形时删除渐变 请有人发布所需的代码 并告诉我将其放在 cs xaml 文件中的位置吗 Thanks This
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • ListView ItemContainerStyle 模板

    我创建了用作 ListView 项目模板的样式 其中包含 CheckBox 和 TextBlock
  • 如何使 WPF 应用程序在 Web 浏览器上运行

    我们有一个用 WPF 编写的现有应用程序 我们正在寻找一种迁移它的方法 以便它可以在 Web 浏览器上运行 深入研究后 我们似乎需要找到一种将代码编译为 WebAssembly 的方法 但我不确定它对于现有的完全加载的 WPF 应用程序有多
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • PreviewKeyDown 不会在 ElementHost 中针对 Tab 和箭头键触发

    我在 Winforms ElementHost 中有一个 WPF 窗口 我的窗口上的 Tab 键和箭头键不会触发 KeyDown 和 PreviewKeyDown 事件 KeyUp 和 PreviewKeyUp 似乎工作正常 Preview
  • 包含内容的 WPF 新窗口

    我想在现有的主 Windwoe 旁边创建一个带有可滚动文本框的新窗口 我在主窗口中按下 打开新窗口 按钮 然后它应该打开一个带有可滚动文本框的新窗口 inside form2 在 WPF 中 您可以在主窗口中拖放元素 但不能在新窗口中执行此
  • 强制 IDataErrorInfo 验证

    我在某个面板上有两个控件 文本框和组合框
  • 使用 ICollectionView 过滤 ObservableCollection

    I have ObservableCollection绑定到dataGrid现在我想过滤我看到需要使用的呈现数据ICollectionView但我不知道如何添加ICollectionView和我的MVVM图案 我的代码简化如下 public
  • wpf,如何限制TextBox的MaxLength?

  • 将 BitmapImage 从 Resources.resx 分配给 Image.Source?

    我想分配一个BitmapImage从我的 Resources resx 到Image 之前我将 png 图像保存到 Resources resx 中 该图像现在位于 Resources logo png 中 在阅读了几篇 SO 帖子和其他文
  • WPFToolkit.Extended - 工具在哪里?

    我已采取的步骤 我正在使用 NET 4 0 我得codeplex http wpftoolkit codeplex com releases view 84227并下载了第一个 扩展 WPF 工具包二进制文件 2 号将此文件 Extende

随机推荐

  • 是否可以杀死 WaitForSingleObject(handle, INFINITE) ?

    我在关闭使用 WaitForSingleObject 并具有无限超时的应用程序时遇到问题 完整的图片是这样的 我正在执行以下操作以允许我的应用程序处理设备唤醒事件 通过以下方式注册活动 CeRunAppAtEvent Notificatio
  • 访问超类类型成员对象的受保护成员 - 一个优雅的解决方案

    首先 我知道我做不到 而且我认为这不是重复的问题 this https stackoverflow com questions 477829 cannot call base class protected functions and th
  • Seaborn 绘图未显示

    我一直在尝试使用 Seaborn 绘制一个简单的条形图 奇怪的是 之前的情节有效 但这些情节没有出现 没有抛出任何错误 据我所知 代码没问题 也许更有经验的眼睛就能发现错误 import pandas as pd import numpy
  • 有没有一种简单的方法来合并 C# 匿名对象

    假设我有两个这样的匿名对象 var objA new test test blah blah var objB new foo foo bar bar 我想将它们结合起来得到 new test test blah blah foo foo
  • 如何在发布模式下调试

    有没有办法在 Xamarin 中以发布模式调试应用程序 当我在发布模式下开始调试时 它只运行应用程序而不启动调试器 我问这个问题 因为应用程序在调试器模式下工作 但在发布模式下崩溃 确实没有充分的理由debug in a Release配置
  • Android更改listview项目文本颜色

    我正在尝试根据 flag 更改列表视图中的某些项目文本颜色 或背景颜色 经过长时间的搜索 我没有找到如何做到这一点 我在特定操作后调用以下循环来更改颜色 ListView listView ListView findViewById R i
  • 如何使用rack-mini-profiler 分析返回json 响应的rails 控制器?

    我在 Rails 3 2 项目中使用rack mini profiler 在宝石文件中 gem rack mini profiler 一切都很好 但我的应用程序主要是一组 json 端点 因此 虽然能够检查 html 页面的性能非常有用 但
  • 使用 JavaScript 生成 RSA 密钥?

    有没有办法使用 JavaScript 生成私钥和公钥 我需要数据库中的这些密钥 开始 RSA 私钥 MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQ WMNW6
  • 通过外部实体在刷新时例外的 Doctrine OneToOne 身份

    I have User and UserProfileOneToOne 相关的 Doctrine ORM 实体 他们应该永远成对存在 不应该有User没有UserProfile User 应该从自动增量中获取其 id 而 UserProfi
  • 如何使用社区服务器连接器扩展在 VSC 上启动 Tomcat 8.5 服务器

    我正在尝试在 VSC 上设置 Tomcat 服务器 因为它无法在 IntelliJ 上运行 因为我没有终极版本 但我没有使用 Community Server Connector 的经验 我的同事也没有 我们所有的文档都是为 Tomcat
  • 缺少 Maven 插件 Jetty

    我在执行此操作时遇到问题http hrycan com 2012 03 28 primefaces lazy loading datatable for jsf2 http hrycan com 2012 03 28 primefaces
  • 来自共享或操作扩展 ios 的网络请求

    我已经搜索过这个标题 但没有找到任何合适的信息 我找到了发出网络请求的方法 将其结果发送到包含应用程序的应用程序 但是 我想直接得到分机的响应并在那里显示信息 我遇到过一些使用 javascript 访问网页的方法 但没有向后端发出请求 是
  • 如何用javascript从pdf文件中提取文本? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 所以我想知道是否有一种方法可以在javascript中从pdf中提取文本 我已经调查了一些 npm 模块 例如 PDF TO TEXT
  • 如何在Windows不分配驱动器号的情况下创建分区?

    我正在尝试通过 Windows API 对附加的虚拟硬盘进行初始化和分区 我已经成功使用设备Io控制 http msdn microsoft com en us library windows desktop aa363216 28v vs
  • Google Adwords CSP(内容安全政策)img-src

    中包含哪些域 协议img src是否需要 Content Security Policy 标头指令才能允许 Google AdWords 转化跟踪 从测试来看 当我们打电话时google trackConversion 看起来浏览器会创建一
  • JDK16 和 Mac OS 上的 Mockito - 无法初始化插件

    java lang IllegalStateException Could not initialize plugin interface org mockito plugins MockMaker alternate null Cause
  • 测试 angular2 dart 组件

    我写了一个组件并想测试它 如何从组件编写测试 有没有 Angular dart 的测试框架 您可以使用test https pub dartlang org packages test包含实验测试实现的包https github com d
  • 防止我的nodejs服务器中的xhr攻击[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个将与客户端移动应用程序
  • Redux 中间件工作一半,但未完全取消操作

    我有一些简单的中间件 可以工作 但也不能工作 基本上我有一个用户列表 我正在尝试删除一个 然后与 firebase 同步 一切都很好 我添加了一些中间件 以便当用户删除一个中间件时 它会询问您是否确定 只需使用一个简单的alert目前 如果
  • 基于 WPF DataGrid 中的 DataGridTemplateColumn 设置列样式

    我正在使用 WPF DataGrid 其中如果该行可编辑 其中一列需要显示 编辑 超链接 这由该行的支持模型中的布尔标志指示 我能够使用 DataGridTemplateColumn 实现这一点 没有问题 然而 对整行的附加要求是在选择该行