Wpf的下拉框数据绑定

本文介绍了在WPF中如何进行下拉框数据绑定,涉及到与数据库的交互,通过服务端作为桥梁。在`Loaded`事件中设置ComboBox的数据源,使用DataTable并指定显示和选择值的路径。服务端实现ServiceContract和OperationContract来获取数据,并通过存储过程从数据库中查询数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Wpf下拉框数据绑定

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Visual Studio 2015wpf

撰写时间:2021/1/20

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本次所讲的内容是下拉框绑定,相信大家都比陌生。在wpf中的绑定数据和MVC有所不同,它涉及到了数据库的存错过程,还要以服务端为桥梁。话不多说直接上代码:

假设我要绑定个委托单位的下拉框数据 :

XAML:

 <TextBlock  Grid.Row="3" Foreground="White" Grid.Column="1" Text="委托单位:" HorizontalAlignment="Left" VerticalAlignment="Center"/>

<ComboBox Grid.Row="3" Grid.Column="2" Background="AliceBlue" Width="200" Height="35" x:Name="CompanyName"/>

 

C#

 

 private void InsterMarineExit_Loaded(object sender, RoutedEventArgs e)

 {

     #region 绑定下拉框

     #region 委托单位

        DataTable dtCompanyName = myClient.Search_EntrustingParty_MouseDoubleClick().Tables[0];

       CompanyName.ItemsSource = dtCompanyName.DefaultView;

       CompanyName.DisplayMemberPath = "CompanyName";

       CompanyName.SelectedValuePath = "CompanyID";

     #endregion

        }

             

服务端:

namespace BLL.BasicData

{

    [ServiceContract]

    class UC_MarineExit

    {

        //实例化数据层

        DAL.DALMethod myDALMethod = new DAL.DALMethod();

        [OperationContract]

       

        public DataSet Select_MarineExit_DataGrid()

        {

            SqlParameter[] mySql = { new SqlParameter("@Type", SqlDbType.Char), };

            mySql[0].Value = "Select_MarineExit_DataGrid";

            DataTable myDataTable = myDALMethod.QueryDataTable("UC_MarineExit", mySql);

            DataSet myDataSet = new DataSet();

            myDataSet.Tables.Add(myDataTable);

            return myDataSet;

        }

 

        #region 下拉框绑定

        [OperationContract]//委托单位

        public DataSet Search_EntrustingParty_MouseDoubleClick()

        {

            SqlParameter[] mySql = { new SqlParameter("@Type", SqlDbType.Char)};

            mySql[0].Value = "Search_EntrustingParty_MouseDoubleClick";

            DataTable myDataTable = myDALMethod.QueryDataTable("UC_MarineExit", mySql);

            DataSet myDataSet = new DataSet();

            myDataSet.Tables.Add(myDataTable);

            return myDataSet;

        }

              #endregion

    }

}

             

ServiceContract(服务契约) OperationContract(操作契约)

“契约”从字面上理解就是交互双方或多方就某个关注点达成的一种共识,是一方向另一方的一种承诺。签署了某个契约就意味着自己有义务履行契约中规定的各项规定,一旦违约就会影响契约双方的正常交互。

服务契约就是对功能的抽象,而功能通过一个个的操作(Operation)承载,所以服务契约可以看成是一个相关操作的集合。

 

数据库存储过程:

--(下拉框)(委托单位)

IF(@Type='Search_EntrustingParty_MouseDoubleClick')

BEGIN

    SELECT 

        CompanyID,

        RTRIM(CompanyName) AS CompanyName

    FROM      S_Company

    union --插入

    select 0,'---请选择---' from S_Company

END

 

在写存储过程中该声明的字段还是要声明的,这里就几个就不写出来了。最后效果图送上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值