3

我正在寻找一个通用的 UI 设计/工作流程来更改多个对象的相同属性。

假设我有一个名为 Person 的对象类。Person 类有一个名为 City 的属性。我想在 UI 中的一个操作中选择 5 个 Person 对象并将所有 5 个对象的 City 属性更改为“New York”。

这并不难以编程方式完成,但我很难想出一个直观的 UI 工作流程。一种想法是使用类似于 iTunes 中使用的模式来更改有关多首选定歌曲的信息。我想提出另一个工作流程,因为这个想法已经在工作中得到了回击。

想法?想法?

编辑:我很欣赏到目前为止的答案。我想指出几点:

  1. 以前的 City 值是否应该以某种方式显示?如果是这样,怎么做?或者组合属性屏幕应该如何通过颜色或其他指示器显示所有城市值当前相同或不同?
  2. 应该如何显示布尔属性(例如 Person.IsAlive)?您是否使用三态切换/复选框?我们有一个包含三个值的下拉菜单?其他想法?
4

6 回答 6

2

采用 iTunes 解决方案,放弃模式窗口并将其显示在您的应用程序中,否则您将显示单个条目的编辑视图。请记住,iTunes 也有一个用于编辑单个条目的模式窗口。

于 2008-10-08T20:52:11.043 回答
1

我可能会使用相当标准的列表视图来执行此操作 - 允许多项选择 - 当您更改任何选定记录(例如下拉列表)中的字段时选择了多个项目,它会将所有项目更新为相同的值。

有时您可能想要禁用此操作 - 因此在右侧有一个链接项目以指示所有项目将一起更新。

于 2008-10-08T20:53:25.190 回答
0

如果此类字段的数量有限,则可以使用类似于 Word 或 Excel 中的“复制和粘贴格式”的范例。选择一个原型记录,右键单击,从菜单中选择“复制城市...”,然后粘贴其余部分。

但我更喜欢你原来的想法......

于 2008-10-08T21:28:52.310 回答
0

好吧,您确实需要手动挑选所有对象,因此多重选择似乎很自然。之后,您可以实现一个上下文菜单项(如果您已经有一个上下文菜单,请将其设为一个名为 Edit 的子菜单)并将所有现有属性作为子菜单项提供。像这样的东西:

  • 编辑
    • 姓名
    • 城市
    • 等等

选择菜单项时,提示用户输入新值,然后更新所有记录。

于 2008-10-08T20:45:00.963 回答
0

一种方法是拆分窗格设置,其中所有人员都在一侧,人员的所有属性都在另一侧。

显然,这对于编辑单身人士来说效果不佳。

于 2008-10-08T20:40:05.920 回答
0

我通过编辑向导完成了类似的事情。我选择了 1-10000 个不同的行,然后右键单击以显示编辑向导屏幕。显示的第一个面板能够设置多达 8 个不同的字段。我允许更改的每个字段都将应用于所有行。我在每个字段旁边都有复选框来选择要更改的字段。然后在选中时显示一个文本框以在旁边捕获新值。如果行都具有相同的值,则它们以灰色显示,例如,如果同一城镇的所有行都以灰色显示城镇,如果其中一行与第一行没有相同的城镇,则以橙色突出显示城镇字段并显示橙色消息'警告 - 有与第一个选定行不同的行'。我做了一个确认页面来检查用户想要继续,然后是一个完成按钮。

Rows to update : 3

    ..........Old Value... Change?....New Value

    Field A   ABC
    Field B   123          Y          845
    Field C   BOB 

                       [<Back] [Next>] [Finish]

<== 如果字段 C 中的某一行没有 BOB,则以橙色突出显示 BOB。

希望有帮助

于 2009-11-04T05:57:08.047 回答