我有一个DevExpress LookUpEdit,我在VB.Net中使用Visual Studio 2008。
我将LookUpEdit绑定到我的数据源,它显示的值可能为null或数据源中的一行。我的程序显示一个树形图,当选择一个节点时,LookUpEdit应该显示指定的值(可以为null)并让用户重新分配该值。 我确实将LookUpEdit.Properties.AllowNullInput设置为True。现在当程序首次启动时,如果我选择的树形图中的第一个节点具有空值,则LookUpEdit不显示任何内容,如果我更改了值LookUpEdit中的值在数据库中发生更改,如果我更改为具有LookUpEdit值的节点,则显示该值。
问题是,如果我从具有值的节点切换到没有LookUpEdit的节点,则显示先前的值。我已经通过调试器,它仍然正在进行正确的获取。
我试图重置LookUpEdit.Text,LookUpEdit.EditValue和LookUpEdit.SelectedText,但没有任何效果。我甚至复制了LookUpEdit首次显示的条件(LookUpEdit.Text =“”和LookUpEdit.EditValue =“”),但它仍然显示最后一个值。
我用 lueLocation.EditValue = lueLocation.Properties.GetKeyValueByDisplayText(valueName)
设置实际值修改
所以我把它缩小了。在我将Text和EditValue设置为空
之后lueLocation.Text = Nothing
lueLocation.EditValue = Nothing
设置值。问题是,在设置值的操作中,下拉菜单打开。所以我用lueLocation.ClosePopup()
来结束它。出于某种原因,当它被调用时,会将.Text
和.EditValue
更改回以前的值,从而调用TextChanged Event
。
不知道为什么但是我无法打开下拉菜单。
答案 0 :(得分:3)
通常在UI中,Ctrl-Del的组合键应清除它并将其设置为空。否则,在代码中,您应该能够设置EditValue = Nothing,并且应该这样做。
以下是DX网站上的几个链接:
搜索:http://search.devexpress.com/?q=clear+lookupedit&p=T4%7cP1%7c4&d=447
http://www.devexpress.com/Support/Center/p/Q96464.aspx http://www.devexpress.com/Support/Center/p/Q270901.aspx
答案 1 :(得分:1)
我解决了这个问题。正如您在编辑中看到的那样lueLocation.ClosePopup()
实际上导致它恢复为之前的.Text
和.EditValue
值。我删除了lueLocation.ClosePopup()
,然后导致我的界面如果值为null则下拉列表保持打开状态,如果有实际的指定值则关闭。
我发现如果我将.EditValue
设置为DBNull.Value
(lueLocation.EditValue = DBNull.Value
)而不是Nothing
,""
或" "
分配给LookUpEdit的值为空,并自动关闭下拉菜单。