【问题标题】:Best method for Binding ComboBox绑定 ComboBox 的最佳方法
【发布时间】:2011-02-08 18:40:54
【问题描述】:

我将开发一个包含大量组合框的大型项目。

大多数组合框将绑定到与另一个数据集/表相关的数据库字段。

例如。

我有以下 2 个表格

公司 {CompanyID, CompanyName, MainContact}
联系人 {ContactID, ContactName}

当用户点击编辑公司时,会出现一个TextBox来编辑公司名称,同时还会出现一个ComboBox。

我目前的做法是将 ComboBox 绑定到 Contacts 数据集,并在后面的代码中手动更新 Company MainContact 字段。

我是否可以将所选项目绑定到 XAML 中的 Company MainContact 字段并将项目绑定到 ContactName 并消除背后的代码?

原因是当您开始在整个应用程序中创建 100 个组合框时,每次创建代码进行更新时都会变得冗长。

这可能吗?

【问题讨论】:

    标签: c# wpf data-binding xaml dataset


    【解决方案1】:

    首先,我强烈建议为您的应用程序使用 MVVM 设计模式。仅 MVVM 应用程序中的数据绑定和命令就可以为您节省大量时间。

    但无论如何,我会离开我的肥皂盒,告诉你如何正确绑定你的组合框:

    <ComboBox ItemsSource="{Binding Contacts}" DisplayMemberPath="ContactName" 
        SelectedValue="{Binding Path=Company.MainContact, 
        UpdateSourceTrigger=PropertyChanged}" 
        SelectedValuePath="ContactName"/>
    

    如您所见,ItemsSource 绑定到您的联系人数据集,但是当用户从列表中选择一个项目时,它将使用所选联系人更新 Company.MainContact 字段。

    【讨论】:

    • 谢谢。我想知道 MVVM 对此有何好处?这似乎很完美。想知道您是否可以帮助解决以下问题:stackoverflow.com/questions/2653096/why-use-mvvm
    • 谢谢!我研究了 MVVM,现在决定实施。但是感谢那个绑定示例!希望我能给你更多的代表。
    • 没问题。我很高兴能帮上忙!
    猜你喜欢
    • 2012-04-01
    • 2012-10-19
    • 1970-01-01
    • 2011-03-18
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    相关资源
    最近更新 更多