我正在2个列表框之间创建数据传输控件。 我有两个框中显示的项目,文本和属性值包含数据。 当我从一个传输到另一个时,我可以访问传输的项目(使用debug)并查看text属性(不是value属性),但是它没有显示在我发送给它的列表框中。 我甚至尝试刷新物体,但没有运气。
谁能告诉我我做错了什么?
private void btnToLeft_Click(object sender, EventArgs e)
{
Telerik.WinControls.UI.RadListDataItem item = new Telerik.WinControls.UI.RadListDataItem(lstRight.SelectedItem.DisplayValue.ToString(), lstRight.SelectedItem.Value);
lstLeft.Items.Add(item);
lstRight.Items.RemoveAt(lstRight.SelectedItem.RowIndex);
lstLeft.Refresh();
lstRight.Refresh();
}
答案 0 :(得分:1)
这是我用于类似情况的代码。
private void btnToLeft_Click(object sender, EventArgs e)
{
if (lstRight.Items.Count == 0) { return; }
if (lstRight.SelectedItem == null) { return; }
RadListDataItem item = lstRight.SelectedItem;
lstRight.Items.Remove(item);
lstLeft.Items.Add(item);
}
你可以像这样更加通用。
private void MoveToTargetListBox(RadListControl sourceListBox, RadListControl targetListBox)
{
try
{
if (sourceListBox.Items.Count == 0) { return; }
if (sourceListBox.SelectedItem == null) { return; }
RadListDataItem item = sourceListBox.SelectedItem;
sourceListBox.Items.Remove(item);
targetListBox.Items.Add(item);
}
catch (Exception ex)
{
//handle Exception
}
}
private void btnToLeft_Click(object sender, EventArgs e)
{
MoveToTargetListBox(lstRight, lstLeft);
}
private void btnToRight_Click(object sender, EventArgs e)
{
MoveToTargetListBox(lstLeft, lstRight);
}
答案 1 :(得分:0)
我想我明白了。 。 。我引用了lstRight.SelectedItem.DisplayValue.ToString()而不是文本值--lstRight.SelectedItem.Text
现在似乎工作了。 .. !