1

我正在使用命令模式,因此对对象状态的任何更改都需要在命令执行中发生。DataGrid 中的普通 itemeditor 只会对底层绑定对象进行更改,但我需要拦截该更改并使其使用命令。

我对 flex 很陌生,所以我正在寻找如何实现它的想法。一个基本示例是我有一个带有“日期”字段的对象。在数据网格中,我使用 flex“DateField”组件作为 itemeditor。当我选择一个新日期时,我不希望它更新数据源,我希望它调用一个不同的方法,我可以在其中访问新选择的值并将其传递给一个命令来执行。任何提示将非常感谢。提前致谢。

4

2 回答 2

2

使用 DataGrid 上的 itemEditBegin 和/或 itemEditEnd 事件并在处理程序中构建您的命令。这个页面有几个例子来捕捉这些事件的编辑操作。

于 2011-03-31T01:58:27.050 回答
1

在我看来,您将其过度设计到了地狱,以至于它变得无法使用。为什么您需要一个命令来动态更改数据?我做 Flex 已经 3 年了,但我还没有看到它以这种方式完成。唯一使用命令是从服务器接收信息。

无论哪种方式,如果您真的想实现它(违反我的建议),您可能希望使用控制器在事件显示列表的上方侦听事件冒泡,然后从那里触发命令。从项目渲染器中:

this.dispatchEvent(new Event('someEvent', true));

然后在显示列表上方:

dataGrid.addEventListener('someEvent', someEventHandler);

在处理程序中,您可以运行命令。

于 2011-03-31T01:25:44.617 回答