隐藏LookUpEdit中的Surrogate键

时间:2012-02-02 20:50:55

标签: c# winforms devexpress

我正在使用LookUpEdit控件。我绑定了两列,一个主键(GUID)和一个人类可读的字符串。我只希望人们看到人类可读的字符串,但我想保留字符串值和它的主键值之间的关系。

我似乎无法隐藏主键在下拉列表中显示。我尝试过DevExpress论坛,他们的proposed solution对我不起作用。所以我试着挂钩ListChanged事件。这也不起作用。

private void DataBind()
{
    messageTypeCbB.ListChanged += new ListChangedEventHandler(messageTypeCbB_ListChanged);
    messageTypeCbB.Properties.DataSource = viewModel.SomeNoteTypes.ToArray();
    //another attempt at hiding the columns.  This fails too.  
    //messageTypeCbB.Properties.ForceInitialize();
    //messageTypeCbB.Properties.PopulateColumns();
    //messageTypeCbB.Properties.Columns[0].Visible = false;
    messageTypeCbB.Properties.DisplayMember = "NodeType";
    messageTypeCbB.Properties.ValueMember = "SomeNoteType_ID";

    fromTxt.Text = viewModel.From;
    dateTimeDd.DateTime = viewModel.Date;
}

void messageTypeCbB_ListChanged(object sender, ListChangedEventArgs e)
{            
    //For whatever reason this won't hide the column
    (sender as DevExpress.XtraEditors.LookUpEdit).Properties.Columns[0].Visible = false;
}

如何隐藏代理键? (隐藏ValueMember仅显示DisplayMember)

DevExpress v11.1.6

2 个答案:

答案 0 :(得分:0)

您是否尝试过该论坛列表中建议的其他方法?即,不将Visible设置为false,而是明确地将要显示的列添加到Columns集合中。尝试Columns.Clear(),然后添加您的列。或者尝试PopulateColumns()然后Columns.RemoveAt(0);

答案 1 :(得分:0)

我从我的Form构造函数中调用了DataBind()。我将调用移到Form Load事件中,它解决了问题。