列表框项目在插入时消失/不显示

时间:2012-08-02 19:45:25

标签: c# winforms visual-studio-2008 telerik

我正在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();
    }

2 个答案:

答案 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

现在似乎工作了。 .. !