2010-05-30 5 views
0

J'ai un DataSet avec un DataTable ayant les colonnes Number et Description.C#/DataSet: Créer et lier une colonne/propriété personnalisée dans DataTable d'un DataSet dans XXXDataSet.cs

Je ne veux pas lier les deux propriétés à une BindingSource liée à 2 contrôles.

Ce que je veux est une 3ème colonne dans le DataTable appelé NumberDescription qui est une composition

de Nombre et description. Cette propriété est liée uniquement à 1 contrôle/BindingSource`s propriété

pas 2.

Il y a le fichier XXXDataSet.Designer.cs partiel et le fichier XXXDataSet.cs partiel. Bien sûr, j'ai défini la chaîne publique NumberDescription {get (en faisant quelques vérifications ici, set (en faisant aussi quelques vérifications ici) dans le fichier XXXDataSet.cs

Mais tout ceci ne lie pas ma nouvelle propriété/Column à BindingSource le DataTable est lié à parce que le DataSet ne connaît pas la nouvelle colonne/propriété

Pour rendre cette nouvelle propriété/colonne connue, je pourrais ajouter une nouvelle colonne à la DataTAble dans la vue du concepteur de DataSet nommant NumberDescription. voir connaître la nouvelle propriété dans la liste de la BindingSource afin que je puisse le choisir.Mais tout cela n'a pas aidé ??

Alors, comment dois-je faire cela correctement? Dois-je appeler le NumberDescrip Propriété property dans la propriété Number AND Description?

Répondre

2

Il n'est pas possible de créer une propriété personnalisée dans une classe de ligne typée et de l'utiliser avec la liaison de données.
Vous pouvez essayer la mise en œuvre IListSource, IBindingList et ITypedList-vous, et en retournant le PropertyDescriptor, mais il impliquera un horrifiant quantité de travail. Au lieu de cela, vous pouvez créer une colonne calculée en créant une colonne pour votre nouveau proeprty et en définissant sa propriété Expression.

+0

Oui ... J'aurais aussi suggéré une colonne d'expression. http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=322 donne un aperçu raisonnable – el2iot2

+0

Oui, la propriété NumberDesDescription se trouve dans la classe partielle DataRow de mon fichier XXXDataSet.cs. Donc j'écris dans la propriété Expression de ma colonne NumberDescription: Number + Description, non? Mais où est ma nouvelle propriété PROPERTY NumberDescription maintenant utilisée? La chose est que je ne peux pas faire Number + Description en une colonne tout de suite parce que je dois encore faire des vérifications nuls sur Number et Description et en fonction de ces vérifications je retourne null ou un string.concat (Number + "" + Description) J'ai vraiment besoin que "" char vide ... – msfanboy

+0

Vous pouvez faire tout cela dans le 'Expression'. Vous ne feriez pas vous-même une propriété. – SLaks

Questions connexes