我有点困惑如何通过利用DataBindings来优化我的程序。我的程序使用多个Linq2SQL绑定对象存储数据。所有ORM对象都存储在层次结构中。在第二个GUI项目中,我在一些文本和组合框字段中显示这些数据。
数据结构层次结构如下:
- JobManager 包含一个 Jobs 字典 - 每个 Job 包含一个 Jobitems 字典 - 每个 Jobitem 包含一个 Article Job、Jobitem 和 Article 都是 Linq2SQL 对象,表示 ORM。
现在我有一个带有 2 个列表视图和选项卡窗格的 GUI。选项卡窗格显示作业、作业项和文章的属性,并提供修改作业和作业项的可能性。GUI 应该按以下方式运行:
- 当在第一个 ListView 中选择作业时,将显示相关作业项在第二个 ListView 中,同时在选项卡窗格中显示作业的详细信息。 - 当在第二个 ListView 中选择作业项时,将在选项卡窗格中显示作业项和文章的详细信息,但只能编辑作业项信息。 - 当进行更改时,用户必须有意保存它们。否则,更改应被丢弃并不同步到数据库。
如何使用 DataBinding 实现此行为?
特别地,我可以将完整的集合绑定到单个 TextField 上,并根据 ListViews 中的选择移动其位置吗?还是每次用户进行选择时,都必须为每个作业单独添加和删除数据绑定?
数据结构层次结构如下:
- JobManager 包含一个 Jobs 字典 - 每个 Job 包含一个 Jobitems 字典 - 每个 Jobitem 包含一个 Article Job、Jobitem 和 Article 都是 Linq2SQL 对象,表示 ORM。
现在我有一个带有 2 个列表视图和选项卡窗格的 GUI。选项卡窗格显示作业、作业项和文章的属性,并提供修改作业和作业项的可能性。GUI 应该按以下方式运行:
- 当在第一个 ListView 中选择作业时,将显示相关作业项在第二个 ListView 中,同时在选项卡窗格中显示作业的详细信息。 - 当在第二个 ListView 中选择作业项时,将在选项卡窗格中显示作业项和文章的详细信息,但只能编辑作业项信息。 - 当进行更改时,用户必须有意保存它们。否则,更改应被丢弃并不同步到数据库。
如何使用 DataBinding 实现此行为?
特别地,我可以将完整的集合绑定到单个 TextField 上,并根据 ListViews 中的选择移动其位置吗?还是每次用户进行选择时,都必须为每个作业单独添加和删除数据绑定?