【问题标题】:How to bind combination of db fields to single property (C#, WinForms, LINQ to SQL)?如何将 db 字段的组合绑定到单个属性(C#、WinForms、LINQ to SQL)?
【发布时间】:2012-10-23 08:56:27
【问题描述】:

我想将单个控件属性 (TextBox.Text) 绑定到使用 Linq to SQL 的数据库字段组合(在 C#/WinForms 项目中)。

例如:

1) 我有一个表 Customer,其中包含 CustomerName、CustomerCity 和 IsBigCustomer 列(布尔值)

2) 在 WinForm 上,我有一个 TextBox "cInfo" 和一个 ListBox "cList"

3) 我已将“cList”绑定到 CustomerName 列(当我更改 cList 中的项目时,我需要 cInfo.Text 中显示的相应客户数据)

4) 我想将“cInfo”TextBox.Text 属性绑定到数据库列的组合 - 例如我想显示:

a) "!"+CustomerName+": "+CustomerCity(如果客户的 IsBigCustomer=true)

b) CustomerName+": "+CustomerCity(如果客户的 IsBigClient=false)

当用户更改 cInfo.Text 时,我需要对其进行验证并将更改发送回数据库(如果验证成功)

Sample data:
{IBM, New York, true} => cInfo.Text should be "!IBM: New York"
(SmallCustomer, Paris, false) => cInfo.Text should be "SmallCustomer: Paris"

我怎样才能完成这项任务?

(问题不在于这种方法的有用性,而是要了解是否可以将多个 db 字段绑定到一个属性以及如何做到这一点)

【问题讨论】:

    标签: winforms linq-to-sql data-binding


    【解决方案1】:

    如何验证数据。如果您将它放在文本字段中,他们可以输入任何内容,如果有人输入“Some!Big:Company:Bad:!Data”怎么样?这对您有什么作用...

    我只能建议在你的表单上,你有类似的东西。

    Checkbox for "Big Client"
    Textbox for the Name
    Textbox for the City
    

    那么,将数据推送回服务器也容易得多。

    【讨论】:

    • 好的,但是是否可以创建这样的“组合”绑定?我想用一种简单的方法来输入/更改数据(虽然给出的例子不是很能说明问题)
    • 好的,但是是否可以创建这样的“组合”绑定?我想用一种非常简单的方法来输入/更改不通过 3 个控件移动的数据(对不起,给定的示例并不能很好地解释为什么值得进行这样的绑定)
    • 好的,我想这在winforms中是不可能的:(虽然这个答案没有给出我需要的东西,但我想它指向唯一可能的方向,所以我将它标记为答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多