数据绑定到相关的布尔列,多对多关系

发布于 2024-08-17 01:06:27 字数 643 浏览 7 评论 0原文

这是一个 WinForms 应用程序。

TABLEA 和 TABLEB 中的行之间存在多对多关系。 TABLEA 中的每一行在 TABLELINK 中都有一条与 TABLEB 中的行相关的记录。想想“用户”和“角色”或类似的东西,每个 TABLELINK 记录都指示“用户 X 具有角色 Y”。

我正在使用数据绑定对象浏览 TABLEA 记录。没问题。这不是一个网格,只是一个带有单独 TextBox 控件的表单。

我想显示一组复选框,每个复选框对应于 TABLEB 中的一行。我想将 TABLELINK 数据绑定到每个复选框的“checked”属性,因此当我们查看记录 X 时,当且仅当存在与 X 和 Y 匹配的 TABLELINK 记录时,才会选中框

Y。创建这种关系并将其绑定到复选框非常耗时,这些复选框必须在运行时创建,因为设计者不知道会有多少个。从概念上讲,在 SQL 中,这是 select count(*) from tableb left join tablelink on tableb.y = tablelink.y where tablelink.x = ? group by tableb.y 但我不知道如何将其绑定到各个复选框。

我的问题由两部分组成:a) 我一开始就以良好的方式构建这个架构吗? b)如果是这样,如何将此查询(或类似查询)的结果绑定到各个复选框?

This is a WinForms application.

There is a many-to-many relationship between the rows in TABLEA and TABLEB. There is a record in TABLELINK for every row in TABLEA that is related to a row in TABLEB. Think "users" and "roles" or something similar, with each TABLELINK record indicating "user X has role Y."

I'm browsing through TABLEA records using databinding objects. No problem. This is not a grid, just a form with individual TextBox controls.

I want to display a group of checkboxes, each corresponding to a row in TABLEB. I want to bind the TABLELINK data to the "checked" property of each checkbox, so box Y is checked when we are looking at a record X if and only if there is a TABLELINK record matching that X and Y.

I'm having a heck of a time creating this relation and binding it to the checkboxes, which have to be created at runtime because the designer doesn't know how many there will be. Conceptually, in SQL this is select count(*) from tableb left join tablelink on tableb.y = tablelink.y where tablelink.x = ? group by tableb.y but I'm stuck on how to bind this to the individual checkboxes.

My two-part question is: a) Am I architecting this in good way to begin with? b) If so, how do I bind the results of this query (or a similar one) to the individual checkboxes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

椵侞 2024-08-24 01:06:27

不确定 a) - 我一直想知道我这样做是否正确。

我所做的是抓取一个数据集 - 并渲染一个名称网格(基于数据集中的表 1),然后根据数据集的查询(数据集中的表 2)渲染一个复选框列表,如果它检查不基于关于第二部分中的数据

不确定这是否是您想要的答案,但它有效!

Not sure about a) - I have always wondered myself if I am doing this right.

What i have done is grab a dataset - and render a grid of the names (based on table 1 in the dataset) then render a checkbox list based on query of the dataset (table 2 in the dataset) and if its checked of not based on data in the second part

Not sure its the answer that you wanted but it works!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文