Combobox与DisplayMemberPath和selectedMemberPath绑定 [英] Combobox binding with DisplayMemberPath and selectedMemberPath

查看:93
本文介绍了Combobox与DisplayMemberPath和selectedMemberPath绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用DisplayMemberPath和selectedMemberPath将数据库ID,名称绑定到组合框,但我无法获取如何访问id值。下面是我正在使用的代码。我正在做什么是错误的并且纠正它在selectchanged时获得id值。



person class

< pre lang =c#> public class Person
{
public int Uid { get ; set ;}
public string UName { get ; set ;}
public Person( int id, string name)
{
Uid = id;
UName = name;
}
}

internal IEnumerable< Person> GetDataForComboBox( string spName)
{
return CommonToAll(spName).AsEnumerable( )。选择(行= >
{
return new Person
{
Uid = Convert.ToInt32(row [ UserID]),
UName = Convert.ToString(row [ 用户名]),
};
});

}

var transData = objDC.GetDataForComboBox( spGetAllData);
observallableCollection< Person> data = new observallableCollection< Person>();
cmbTransporter.Items.Add( new Person( 0 - 选择任何 - ));
foreach var item in transData)
{
cmbTransporter.Items.Add( new Person(item.Uid,item.UName));
}
cmbTransporter.ItemsSource = data;
cmbTTCTransporter.SelectedIndex = 0 ;





在Xaml

 <   Combobox    名称  =  cmbTransporter    selectedValuePath   =  {Binding Person}    DisplayMemberPath   =  UName    SelectedValue   =  Uid  /  >  




在上面的例子中,能够绑定但是nt bale来访问id ???如何使用上面的代码获取id。

每次我都不能使用组合框选择索引,因为假设我删除了组合框中的任何项目,我的所有代码都不会按照我的要求运行。而不是保存所选索引想要使用选择的值,这意味着我想绑定的id保存到datatbase。



我出错了让我知道plsss。

解决方案

你在xaml中的绑定是错误的....请检查以下



 <   combobox    名称  =  cmbTransporter    selectedvaluepath   =  Uid    displaymem berpath   =  UName    selectedvalue   =  {Binding Person}    /  >  

代码



使用cmbTransporter.SelectedValue.Tostring(),你会得到id的值。



希望它现在正常工作......检查


Binding database id,name to combobox using DisplayMemberPath and selectedMemberPath but i couldnt get how to access the id value. below is the code am using.what is wrong that am doing and to rectify it get id value upon selectionchanged.

person class

public class Person
{
public int Uid{get; set;}
public string UName{get; set;}
public Person(int id,string name)
{
Uid=id;
UName=name;
}
}

internal IEnumerable<Person> GetDataForComboBox(string spName)
        {
            return CommonToAll(spName).AsEnumerable().Select(row =>
            {
                return new Person
                {
                   Uid = Convert.ToInt32(row["UserID"]),
                    UName= Convert.ToString(row["UserName"]),
                };
            });

        }

var transData = objDC.GetDataForComboBox("spGetAllData");
 observallableCollection<Person> data=new  observallableCollection<Person>();
  cmbTransporter.Items.Add(new Person(0,"-Select Any- "));
                    foreach (var item in transData)
                    {
                        cmbTransporter.Items.Add(new Person(item.Uid,item.UName));
                    }
               cmbTransporter.ItemsSource=data;
               cmbTTCTransporter.SelectedIndex = 0;



In Xaml

<Combobox Name="cmbTransporter" selectedValuePath="{ Binding Person}" DisplayMemberPath="UName" SelectedValue="Uid"/>



In the above case,able to bind but nt bale to access id ??? how can get id by using above code.
Every time i cannot use combobox selected index because suppose if i delete any item in combobox all my code will not run as i required.Instead of saving selected index want to use selected value that means id which i want to bind whie saving to datatbase.

where i went wrong let me know plsss.

解决方案

your binding in xaml is wrong....please check the below

<combobox name="cmbTransporter" selectedvaluepath="Uid" displaymemberpath="UName" selectedvalue="{ Binding Person}" />

code

by using cmbTransporter.SelectedValue.Tostring(), you will get value of id.

Hope it works fine now..check it


这篇关于Combobox与DisplayMemberPath和selectedMemberPath绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆