【问题标题】:How to Bind TextBox with ComboBox's selected value which includes SQL join query如何将文本框与组合框的选定值绑定,其中包括 SQL 连接查询
【发布时间】:2015-11-16 11:34:07
【问题描述】:

我的问题就像我有三个 SQL Server 表:

    ProductCategory
    ______________________
    CategoryID int PRIMARY KEY
    Category nvarchar(20)

    ProductDetails
    ______________________
    ProductID int PRIMARYKEY
    ProductName nvarchar(50)
    CategoryID int FOREIGN KEY

    Asset
    _______________________
    ProductID int FOREIGN KEY
    CategoryID INT FOREIGN KEY
    ProductName nvarchar(20)

现在我制作了一个组合框,它从 ProductDetails 表中选择所有 ProductName(s)。接下来,我创建了一个 Category 文本框,它应该显示 ProductCategory 表中相应的 'Category' Name。 组合框和文本框的 XAML 部分如下:

    <combobox itemsource="{binding}" Name="ProductComboBox" IsSynchronizedWithCurrentItem="true"/>
    <textbox Name="CatID" TextChanged="CatID_TextChanged">

所以会有一个CategoryIDProductDetailsProductCategory表的JOIN得到Category名字,因为 ProductDetails.ProductName 将由用户在 ComboBox 中选择。稍后,所有这些值都将插入到 Asset 表中。 请建议如何制作这个案例的 XAML 和 XAML.cs 文件? 谢谢!

【问题讨论】:

  • 那么,您打算在视图中显示哪些字段?您应该已经在脑海中确定了布局。
  • 我正在制作表格。这些字段是产品名称(组合框)、类别名称(文本框)。在提交按钮处,值被插入到资产表中,该表具有 --> ProductID、ProductName、CategoryID 等字段。因此,一旦用户选择了产品名称,就必须显示其对应的类别名称,但必须在提交表单时将其 CategoryID 插入到资产表中。希望我对你很清楚。

标签: c# .net wpf


【解决方案1】:

好的,通常在 WPF 中编程时,您的代码隐藏文件 (XAML.cs) 中没有太多代码。

相反,您将视图 (xaml) 绑定到称为视图模型的类。 视图模型包含要在 xaml 中显示的数据的属性。

我只能概述您必须采取的步骤,因为您的问题非常笼统。

  • 创建具有以下属性的视图模型类:
    • 所有产品的列表
    • 当前选择的产品
    • 属于产品的类别
    • 所有类别的列表
  • 创建视图并将视图元素绑定到视图模型的相应属性
  • 设置当前选择的产品时:也设置类别
  • 当用户点击“ok”时(应该是ICommand):存储数据。获取数据(命令)的代码也应该在视图模型中。


有用的链接:

另请参阅本教程关于 MVVM 和查看模型:Model-View-ViewModel (MVVM) Explained

本教程是关于组合框和数据绑定的:WPF ComboBox and data binding

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    相关资源
    最近更新 更多