2009-05-29 5 views
1

Je crée un code pour déplacer les éléments d'une zone de liste vers le haut et vers le bas. Pour cela, j'ai fait deux boutons pour déplacer l'élément vers le haut (bouton Déplacer vers le haut) et vers le bas (bouton Déplacer vers le bas). Voici mon code:Le type ou le nom d'espace de nom 'Item de liste' est introuvable

Maintenant j'obtiens l'erreur d'espace de nom pour ListItem. Quelqu'un peut-il m'aider à le rectifier?

+0

Si vous aviez utilisé le mot-clé "var" au lieu de ListItem, vous auriez pu éviter le problème d'utiliser la mauvaise classe ListItem ... juste un commentaire. –

Répondre

1

Je soupçonne que vous êtes absent le approprié à l'aide -Directive en haut de votre fichier .cs, qui serait à l'aide System.Web.UI.WebControls;. Vous pouvez également manquer l'assembly correct (bien que j'en doute) et ajouter une référence à l'assembly System.Web dans votre projet.

+0

Point de pedantry rapide - c'est une instruction using, pas une instruction using. Une instruction using est celle qui appelle Dispose automatiquement. –

+0

Y at-il une alternative pour ListItem qui peut fonctionner pour moi comme je le veux. –

+0

@Jon: Oui, vous avez raison, édité ma réponse. @sam: Eh bien, puisque je vous ai vu commenter l'autre réponse, prenez la dernière en utilisant la directive (Jon; p) de cette réponse et cela devrait fonctionner correctement. – thr

4

Eh bien, vous n'avez pas dit quel type d'application vous écrivez - Windows Forms? ASP.NET? WPF? En supposant que c'est ASP.NET, vous avez besoin de:

using System.Web.UI.WebControls; 

en haut de votre code. S'il est WPF vous voudrez peut-être:

using System.Windows.Documents; 

EDIT: S'il est Windows Forms alors il n'y a pas une classe ListItem. ListBox.SelectedItem renvoie object, et non ListItem. Quel aspect d'un type ListItem souhaitez-vous utiliser avec le ListBox? (Je suppose que vous utilisez un ListBox.) Vous pouvez ajouter des éléments à ListBox.Items juste comme des objets.

+0

Ses formes Windows. –

+0

Je veux l'élément sélectionné et le stocker quelque chose pour que je puisse l'utiliser plus tard. –

+0

Alors, pourquoi avez-vous besoin de ListItem plutôt que d'un simple objet? –

1

Si vous utilisez Visual Studio, vous pouvez simplement déplacer le curseur sur l'identificateur et une balise active apparaîtra. Ouvrez-le en appuyant sur Ctrl +. ou en cliquant dessus et choisissez si vous souhaitez ajouter la directive using ou utiliser un nom complet.

D'autre part, si vous utilisez Visual Studio, IntelliSense vous aurait dit à sa manière que l'identifiant est pas disponible actuellement :)

0

Dans Windows Forms, si vous ajoutez des objets avec ListBox. Items.Add (Object), où Object est un objet que vous avez créé, le ListBox sera rempli par le nom des objets, pas par du texte. Sauf si vous ajoutez ListBox.Items.Add (Object.Text), auquel cas vous obtenez le texte dans le ListBox mais vous perdez le reste de l'information dans les objets. Ce que nous voulons, c'est un moyen d'émuler ce que la classe ListItem implémente dans ASP.

0

Vous utilisez Windows Forms, c'est pourquoi vous n'êtes pas en mesure d'accéder à la classe ListItem dans l'espace Nom Contrôle, procédez comme suit: -Ajouter « PresentationFramework » (.NET de référence) comme une référence à votre solution - ajoutez using System.Windows.Controls; à votre fichier de classe

Questions connexes