我有一個LINQ查詢元素列表和兩個組合框。我希望第一個組合框使用列表作爲數據源,但第二個組合框使用同一個列表,而不使用第一個選擇的項目。 IE:我列表<>:A,B,C
Combobox1選擇:A,B,C
Combobox1選擇的項目:甲
Combobox2選項:B,C
基於組合框選擇從列表中減去項目
下面是代碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class AdicionarEquipa_Admin: Form
{
private DiagramaEntidadesContainer dbATMT;
public AdicionarEquipa_Admin()
{
InitializeComponent();
dbATMT = new DiagramaEntidadesContainer();
PreencherListas();
}
private void PreencherListas()
{
List<Player> jogadores = (from player in dbATMT.PlayerSet
select player).ToList<Player>();
Player jogadorSelecionado = (Player)cB_addEquipaJogador1.SelectedItem;
List<Player> jogadores2 = new List<Player>();
foreach (Player jogador in jogadores)
{
if (jogador != jogadorSelecionado)
{
jogadores2.Add(jogador);
}
}
cB_addEquipaJogador1.DataSource = jogadores;
cB_addEquipaJogador2.DataSource = jogadores2;
}
private void cB_addEquipaJogador1_SelectedIndexChanged(object sender, EventArgs e)
{
PreencherListas();
}
private void cB_addEquipaJogador2_SelectedIndexChanged(object sender, EventArgs e)
{
PreencherListas();
}
}
}
這是行不通的。 DiagramaEntidadesContainer是一個ado.net數據庫。
的'''名單 .Remove'''函數返回一個布爾值 –
fshauge
所以我應該做的「jogadores.Remove(jogadorSelecionado ); jogadores2 = jogadores;' ? –
您必須將第一個列表的內容複製到列表的新實例中,但不包括選定的元素(jogadorSelecionado) – fshauge