我有兩個列表,第一個(右)代表所有汽車和secound(左)列表的待售汽車列表。添加/刪除列表<>在列表框中選擇的項目
在我的控制下有兩個ListBox,他們每個人都會顯示一個汽車列表。我想點擊一個按鈕(< <),列表框1中選定的車將被添加到列表框1列表中。
這兩個列表是在控件類之外創建的,所以我需要綁定到ListBoxes。我試圖使用DataSource,但如果我設置它,我不能使用從項目中添加刪除。哪種做法最好?
謝謝。 OBS:Ive已更改爲ListBox。
,我使用的解決方案是:非常非常醜陋的解決方案...:/
public IList<Item> ItensToMaintaim
{
get { return (IList<Item>)this.itensToMainTainList.DataSource; }
set
{
//Need to set null to refresh
this.itensToMainTainList.DataSource = null;
this.itensToMainTainList.DataSource = value;
this.itensToMainTainList.DisplayMember = "Name";
this.itensToMainTainList.ValueMember = "Name";
}
}
public IList<Item> Itens
{
get { return (IList<Item>)this.itensList.DataSource; }
set
{
//Need to set null to refresh
this.itensList.DataSource = null;
this.itensList.DataSource = value;
this.itensList.DisplayMember = "Name";
this.itensList.ValueMember = "Name";
}
}
private void removeItem_Click(object sender, EventArgs e)
{
if (this.itensToMainTainList.SelectedItem != null)
{
this.itens2.Remove((Item)this.itensToMainTainList.SelectedItem);
this.ItensToMaintaim = this.itens2;
if (this.itensToMainTainList.SelectedIndex < 0)
{
this.itensToMainTainList.SelectedIndex = this.itens2.Count - 1;
}
}
}
private void addItem_Click(object sender, EventArgs e)
{
if (this.itensList.SelectedItem != null)
{
bool contains = false;
contains = this.itens2.Contains(this.itensList.SelectedItem);
if (!contains)
{
this.itens2.Add((Item)this.itensList.SelectedItem);
this.ItensToMaintaim = this.itens2;
}
if (this.itensList.SelectedIndex < this.itens1.Count - 1)
{
this.itensList.SelectedIndex++;
}
}
}
你有沒有嘗試設置數據源,並從列表中刪除自身的項目? – 2012-03-28 12:32:12
是的,但一旦我設置DataSource,它不會再更新,如果我更改orignal列表,組合框仍舊替代舊的,我試圖重置DataSource,但沒有任何變化。 – Pedro77 2012-03-28 12:35:29
您使用哪種類型的Windows應用程序? (Winform/SilverLight等)。 – 2012-03-28 12:37:34