问题标签 [xceed-datagrid]

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.

0 投票
1 回答
2391 浏览

wpf - WPF Xceed datagrid - 单元格内容上的数据触发器让我在加载时丢失数据......但是重新

我正在为 WPF使用Xceed数据网格。今天我试图改变整行的背景,如果它的列“SA”之一具有某个值或不为空。我在XAML中编写了以下代码,并在后面的代码中使用了转换器函数:

令我惊讶的是,当我第一次加载网格时,SA 列中的数据无处可见。但是,一旦我向下滚动一点,直到应该包含该列数据的行不可见,然后当我再次向上滚动以查看该行时,我可以看到该列中的值以及背景变了。

我究竟做错了什么?

0 投票
2 回答
4485 浏览

wpf - Apply ValueConverter on DataGrid Column

I have written a converter class(implementing IValueConverter) which converts a code that comes from the database (for example "CTY") into a more user friendly description (for example "City"). I want to use the converter on a single Column in my XCeed WPF Datagridcontrol, but I do not know to which property I must set the Converter to. I also tried to attach it to a DataCell using a style but it won't work properly and I think it is also not necessary since the converter should apply to only one column and not every cell.

The columns are also autogenerated so if I could apply it at runtime, that would be awesome!

I don't know to which property of the column I must aplly the converter to (the Xceed Column doens't have a "Binding" property. Do you guys have any suggestions?

More examples or code can be provided if asked for. I hope my problem is a bit clear for you.

EDIT:

This are the things I use in my XAML file:

This is my Converter:

EDIT2:

I tried with the DataGridItemProperty (see XAML below) but when I debug I do not enter in the Converter class and the grid just loads with the initial data and not with the converted data.

It definitely knows the BudgettaireEntiteit field because if I enter a field that doesn't exist it throws an error. Now it just does nothing

0 投票
2 回答
1621 浏览

wpf - 转换器在每次击键时调用,而不是在用户输入结束时调用

自从切换到 .NET 4.0 后,我遇到了数据输入问题。在我的 Xceed 3.7 网格中,用户过去可以在单元格中输入一个值,当他们点击离开或按 Enter 键时,ConvertBack将调用绑定转换器的方法,解析用户输入值并以所需格式存储。

现在突然之间,每次击键都会发生这种情况- 这会导致一个巨大的问题,因为如果用户删除一个数字并开始输入另一个数字(比如说 -100),一旦他们输入负号,就会转换回触发并抛出异常,因为“-”不是可解析的字符串,并且该值被还原。

我认为问题很清楚,所以现在我将粘贴一些代码。

用户输入的列如下所示:

数据网格都共享相同的样式:

注意UpdateSourceTrigger设置为CellEndingEdit。我原以为这将负责何时调用转换器并更新绑定值。但是,只需切换 .NET4 即可更改任何控件。

这是您在上面看到的列的数据模板:

我认为转换器代码本身是无关紧要的,所以除非有要求,否则我会忽略它。问题是每次击键都会调用它。

如果你能对此有所了解,我会欣喜若狂。我的意思是,如果没有解决方案,我可能不得不回滚我的所有 .NET 4.0 增强功能,或者将我的下一个版本推迟一个月以上重写我所有的数据网格以不再使用 xceed。多谢你们。


更新#1

实际上,我想出了一个相当聪明的解决方法(在我看来),我引入了一个虚拟文本块来保存 CellEditorBinding xceed 迫使我们在数据模板中使用。然后我将输入控件更改为绑定到文本块的文本属性,而不是直接绑定到 CellEditorBinding,这使我可以指定自己的绑定模式。在这里,我可以将模式设置为“lostFocus”,主要问题就解决了!不再在每次击键时调用转换器,而是仅在用户离开单元格或按 Enter 时调用。

正如您可以想象的那样,这一层间接导致了一些其他小问题,例如破坏验证。奇怪的是,现在当用户输入无效数据时,转换器会抛出一个异常,xceed 捕获并使用它来打开单元格的错误模板,但纠正错误并按 Enter 不再起作用。用户唯一的选择是按下 ESC 键,使单元格值恢复并失去焦点,然后才能更正输入。

在这种情况下,用户必须按 ESC 才能继续编辑单元格。 简单地单击或将值更改回有效值是行不通的。

我仍然希望有一个更优雅的解决方案来解决这个问题。


更新#2

我在 Xceed 支持论坛上找到了一位开发人员,该开发人员在这篇文章中提出了与我相同的问题:http: //silverlightdatagrid.com/CS/forums/permalink/31548/31516/ShowThread.aspx#31516

许多用户似乎对您的示例完全感到困惑(对于 .Net 4.0,这些示例基本上已经过时),并且只使用xcdg:CellEditorBinding 来定位您自己的控件,它似乎只支持 PropertyChanged 验证

不幸的是,没有提供任何解决方案。他确实提出了一种更优雅地更改更新源触发器的策略,我可以采用该策略,但我仍然遇到验证错误冻结单元格直到用户点击 ESC 的问题。


更新#3

我已经确认,通过更新到 Xceed DataGrid 4.3 版(试用版),问题自行消失了,因为在那个版本中,Xceed 更新了它xcdg:CellEditorBinding UpdateSourceTrigger与 .Net4.0 的不兼容性。然而,因为 Xceed 的许可证仅包含 6 个月的错误修复更新,然后您必须支付全新的许可证(荒谬),而且我没有看到任何公司授权 1200 美元的单一开发人员许可证费用来使用最新的Xceed dll 只是针对这个小错误,我仍然会努力在 3.7 版本的 Xceed 中找到完整的解决方法。我将为有机会烧钱的开发人员介绍这个“解决方案”。

事实证明,升级到 4.3 并没有解决问题。这似乎只是因为我忘记了退出我之前的更改。即使在最新版本中,Xceed 仍然没有在UpdateSourceTriggeron 上公开该属性CellEditorBinding

0 投票
0 回答
432 浏览

wpf - xceed datagridcontrol for wpf - 如何设置 inactiveselectionbackground 属性的样式?

我正在寻找一种在 xaml 或我的 datagridcontrol 对象的代码中设置 inactiveselectionbackground 属性的方法。我试图在 xaml 中设置样式,但找不到我需要的内容,而且我似乎无法在代码中找到 datagrid 对象本身的属性。我希望其他人以前曾与此作过斗争,并且可以向我展示如何解决它。

我正在为 wpf v4.3 使用 xceed datagridcontrol

默认行为是关注网格中的第一行而不是实际选择它。因此,在我应该期望选择蓝色的行颜色的地方,我得到了默认的 systemcolors.inactivecaption 值,在某些机器上它是深灰色的。尽管最终用户的操作系统,我试图保持一致的外观。

0 投票
0 回答
421 浏览

c# - 取消选择 Xceed 网格中的项目

我有一些 xceed 网格,我不希望默认选择任何项目。现在,当我的网格加载时,第一个项目被选中。有没有办法阻止这种行为的发生?

0 投票
1 回答
103 浏览

xaml - 格式化 Xceed Grid 的 GroupBy 标头的显示

我在 xceed 网格上使用 groupby 控件。我正在尝试格式化标题。我想去掉下图中圈出的部分。有任何想法吗?

在此处输入图像描述

0 投票
1 回答
384 浏览

c# - 当我在 Visual Studio 中调试时,UI 的行为有所不同

我在 xceed 网格中使用了一些拖放功能。当我尝试将项目向下拖动一行时,它不起作用。但是如果我在我的 drop 方法中设置一个断点然后执行 drop,当我回到 UI 时它已经改变了。无论我是否闯入代码,什么可能导致它的行为不同?

0 投票
1 回答
701 浏览

c# - 将数据从列表写入数据网格

我有带有字段idsticker的数据网格volatility,,,rate of return。我也有一个container带有字段的结构idsticker,,volatilityrateofreturn

我用结构创建列表并在那里添加值

但是如何将这些值从列表中写入数据网格?当我这样做时

它创建的行数与列表的计数完全相同,但它们都是空的。

xaml 中的数据网格定义

0 投票
1 回答
595 浏览

c# - 当包含它的列调整大小时动态设置文本块大小

我有一个 xceed 网格(不确定这是否重要),其中一列有一个具有 TextBlock 的 CellContentTemplate。我希望它不是自动设置为文本大小的文本块宽度,而是列的大小。我允许调整大小,所以这会使事情变得有点复杂。有没有办法在调整列大小时在后面的代码中动态更改 TextBlock 宽度?

编辑:细胞内容模板

0 投票
0 回答
548 浏览

c# - XCeed Datagrid 绑定双向

我对带有 WPF 的高级 Datagrid 的 XCeed 工具有疑问。我在对象的 observableCollection 上创建了一个数据网格绑定,它可以工作(对象成为数据网格的线)。但是绑定仅在 OneWay 中,我不知道为什么。你有什么主意吗 ?

PS:我在任何地方都选择双向模式,并且数据网格的所有组件(以及数据网格本身)的只读属性为假