问题标签 [datagridcell]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - 如何动态设置 WPF DataGridCell 样式
我有一个 DataGrid,其 itemsSource 定义如下:
...
...
然后我为每种类型的列/单元格设置了类:
然后我像这样设置每一列的 CellStyle:
在每一列的构造函数中:
这允许我将实际的 DataGridCell 的 Background 属性绑定到我的单元格表示的 Background 属性,从而可以随时轻松地修改单元格的背景。
现在我的主要问题是这种做事方式会像地狱一样减慢 dataGrid ......我为每个单元格绑定了大约 15 个属性,当我显示 100 cols x 20 行时,显示 dataGrid 和然后当我水平滚动时大约一秒钟刷新它(我的屏幕一次只能允许 20 列,并且我为 dataGrid 启用了虚拟化)。
如果我摆脱样式,响应时间仍然比我想要的要长,但我可以做到。
那么有没有更好的方法来做到这一点?
我也尝试在 Xaml 中使用这种样式,但它似乎不能很好地处理列的虚拟化,即:我将单元格的背景设置为绿色,然后向右滚动整个页面,并且单元格最终与如果我涂成绿色的单元格应该是红色的,它会获得绿色事件:在我将当前行移动到包含该单元格的行之前,该值不会更新......另外,它似乎根本没有提高性能......
谢谢分享
编辑:我想要达到的一般效果:
- 具有动态列的数据网格(列的数量和类型仅在运行时知道
- 在任何时候,我都可以更改单个单元格的任何样式属性:字体(如果应用了系列、大小、样式、粗细、装饰)、前景、背景、textAlignment(如果有)等...
这正是我必须实现的。知道我发现启用列虚拟化后,您无法操作 REAL dataGridCells,因为它们可能尚未显示(虚拟化),然后您失去了属性值的更改。所以我选择了这个“hack”:我将实际 dataGridCell 样式中的每个属性都绑定到“逻辑”属性,然后修改逻辑属性。但这很慢。
希望我能更好地解释自己。
c# - 让文本从 Silverlight 中的 DataGridCell 中流出,但不从 DataGrid 中流出
这里有点奇怪和具体的问题,但我试图找出一种干净的方法让 Silverlight 中的对象(在我的情况下为 TextBlock)从 DataGridCell 中流出,但不会从包含的 DataGrid 中流出。
例如:
我并不完全知道文本本身在两个不同的单元格中是什么,而是我希望文本重叠。
我想避免的是:
在这种情况下,我宁愿它看起来像:
目前,我尝试更改 CellTemplate 以便我的 TextBlock 包含在 PopUp 控件中,并且 PopUp 始终处于打开状态。但这不起作用,因为通过使用 PopUp,它会在 DataGrid 之外流血。为了解决这个问题,我尝试给 DatGrid 一个 Clip 矩形,但这不起作用——PopUp 在 DataGrid 之外仍然可见。
希望有人对此方法有一个干净简单的解决方案。最好的情况是我不知道的某种神奇的 DataGrid.ColumnSpan 或 DataGridColumn.ColumnSpan ......
c# - 在 DataGrid 中选择多个单元格并输出到 Excel 表
我有一个包含数百行和两列数据的 DataGrid。我将需要以编程方式选择 DataGrid 中的某些行和某些特定单元格,并将它们输出到 Excel 工作表上。在做了一些研究之后,似乎获得单元格值的唯一方法是编写一个辅助函数,每次获得一个单元格值时,辅助函数都会运行。
是否有更简单/更快的方法来获取 DataGrid 中特定单元格的值?或者我是否应该将每个单元格值同时存储到一个数组中,当它进入 DataGrid 并将数组输出到 Excel 而不是 DataGrid 时?
wpf - WPF datagrid - 启用选择,禁用文本输入
我有一个 C# WPF Datagrid,带有复选框列、超链接列和文本列。我的 DataGrid 绑定到一个 DataTable。这些列不是自动生成的,但我确实在代码中动态创建它们,因为事先不知道列的数量。我想启用要选择的单元格中的文本(用于 ctrl+c 目的)但禁用编辑。我不想更改文本。任何人都可以帮忙吗?
wpf - 基于 DataGridCell 值的触发器
我在数据网格中有一些单元格,当它们的值为 0 时,我想将某些列中的单元格突出显示为红色。我不知道如何处理这个问题。
我看过这个问题:WPF:如何突出显示满足条件的 DataGrid 的所有单元格?但没有一个解决方案对我有用。
使用样式触发器时,似乎触发器旨在应用于属性。当我做一些什么都没有发生的事情时(我假设是因为内容不仅仅是一个简单的值)。
使用最后一个建议的解决方案,我遇到了一个编译时问题,这似乎是 VS 中存在一段时间的错误的表现:自定义绑定类无法正常工作
有什么想法可以实现这一目标吗?
有人有想法么?
visual-studio-2008 - Is it possible to make a DataGridView, DataGridColumn, DataGridCell mimic a specific behaviour in excel?
Technologies: Visual Studio .NET 2008
I'm wondering if anyone is aware of a way to force a column in a datagridview to behave similarily to Excel.
Currently, this is what the data looks like:
what I would like to see is
However, the catch is, I want the data to look like "B" when not in use (no focus, mouse isn't in cell) and I want the data to look like "A" when in use. (Cell has focus, not the whole column.)
If I can't do the specific cell, that's fine. If it's as broad as "When the dataGridview has focus, all data looks like A, I can deal with that.
Any ideas?
wpf - 带有 TextBlock 的 WPF DataGridCell 模板 - 绑定?
我将'sContentPresenter
中的DataGridCell
's替换为Template
aTextBlock
现在我搜索正确Binding
的内容。
正常的方法是Text="{TemplateBinding Content}
-TextBlock
它不起作用。也Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Content, Mode=TwoWay}"
不能正常工作。
还有其他想法吗?
silverlight - DataGridCell 内容模板选择器 Silverlight
我有一个带有动态数据(自定义 DataRows 的集合)的 DataGrid,它是从服务器获取的。DataRow 有一个索引器和一个属性 Data,它返回绑定的整个数据行(您将在下面看到)
我以这种方式创建 DataGrid 的每一列:
我需要做的:我需要根据转换器返回的数据以不同的方式显示 DataGridCells 的内容。
我编写了模板选择器(它继承了 ContentControl)并将其放入 DataGridCell 的 ContentTemplate 属性中,如下所示:
在这种情况下,我将整个 DataRow 作为我的选择器的内容(不明白为什么,因为该列被绑定在行的一项上)并且我的转换器没有被调用。整个数据行是默认的 DataContext,所以我想,在这种情况下,我的代码隐藏绑定只是忽略了。
所以我尝试将我的模板选择器放到 DataGridCell 的 ControlTemplate 中:
但在这种情况下,我将 TextBlock 与空文本作为我的选择器的内容(SHOCKED)。更改内容后调用转换器。如何创建模板选择器,它将根据我的绑定数据选择模板(调用转换器后)?
wpf - DataGrid 选项卡导航跳过列
我在 WPF 中有一个带有模板列的数据网格。网格中的几列是只读的,其他焦点变为可编辑(而不是标签、文本框、复选框等出现)。
我想要实现的是,当我在网格的列中切换时会跳过只读列。
任何人都知道如何实现这一目标?
谢谢!弗拉丹
不,不工作:(
这是完整的单元格...单独使用 KeyboardNavigation.IsTabStop 和 IsTabStop 进行了尝试...没有用
silverlight - 从 Silverlight 4 中的代码隐藏更改 DataGridCell 的背景
我正在编写一个 silverlight 应用程序,它可以让您通过输入的分隔符解析复制的文本。在数据被解析并放入网格后,用户可以“擦洗”数据。这会将单元格的当前值与列的允许值进行比较,选择其最佳猜测并通过 ItemsSource 属性将数据重新绑定到网格。
我的问题是我知道每个被“擦洗”的单元格的坐标,我想突出显示这个单元格或更改它的背景颜色。据我所知,您可以单独设置 DataGridCell 的背景,但我无法访问 DataGridCell。我可以访问 Grid 的列和行,但这些似乎也没有像我希望的那样提供对 DataGridCell 的访问权限。设置 ItemsSource 后,是否有人可以访问 DataGridCell?