DevExpress LookUpEdit SelectedText问题

时间:2010-02-18 17:15:22

标签: devexpress

我有一些关联到某些列表的lookupedits,用户可以选择值然后保存在数据库中。我使用EditValueChanged事件来处理值。到目前为止一切都很好!

现在我需要从数据库中获取值并将它们分配给lookupedits。我没有将BindingSource用于整个对象,因为lookupedits绑定到独立列表。 正如我想的那样,从文档中读取,SelectedText是我需要的,但当我分配我想要的字符串时,它只是不起作用并设置一个空字符串。 DateEdit控件的相同行为,我正在分配一个DateTime值,似乎有这个值,但没有显示它。我可以设置EditValue属性,但我再没有在LookUpEdit中显示任何内容。

如何强制LookUpEdit向我显示我想要的值,基本上转到我设置的值的行并在编辑器中显示文本,或者设置SelectedText并将其与列表匹配并显示它! / p>

我想这应该更容易......任何帮助表示赞赏!

示例:

myLookUpEdit.SelectedText = "George" // The LookUpEdit is Binded to a List<Names> and has the name George.

谢谢

1 个答案:

答案 0 :(得分:1)

每当我设置LookupEdit的值时,我都使用EditValue。

您需要确保将LookupEdit的ValueMember属性设置为您希望在EditValue中显示的任何内容。 DisplayMember将关闭LoodupEdit时显示的内容。您可以将字符串传递给对象中所需属性的名称。

据我所知,设置SelectedText值与输入控件的效果相同。

public partial class Form1 : Form
{
    List<Name> MyNames = new List<Name>();

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        MyNames.Add(new Name("John", "Smith"));
        MyNames.Add(new Name("John", "Doe"));
        MyNames.Add(new Name("Jane", "Doe"));
        MyNames.Add(new Name("Jane", "Smith"));

        lookUpEdit1.Properties.DataSource = MyNames;
        lookUpEdit1.Properties.DisplayMember = "FirstName";
        lookUpEdit1.Properties.ValueMember = "FirstName";

    }

    private void lookUpEdit1_EditValueChanged(object sender, EventArgs e)
    {

        string mystring = lookUpEdit1.EditValue.ToString();

        lookUpEdit1.EditValue = mystring;
    }
}

public class Name
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public Name(string firstName, string lastName)
    {
        this.FirstName = firstName;
        this.LastName = lastName;
    }
}
相关问题