Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Languages / C# / December 2005

Tip: Looking for answers? Try searching our database.

ListView question

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Chris - 27 Dec 2005 14:34 GMT
Hi all,
I posted the following in microsoft.public.dotnet.framework.windowsforms
but it seems that group has little traffic.

Hi all,

I have a listview box which is populated from methods of objects stored in
a List<T> collection. The
items in this collection are generated from a user filled out form.
The items in the listview have the same index as the ones in List<T>, so I
have an event which loops through the ListView, and if selected = true, the
data from the corresponding List<T> is used to populate a form - so in
effect creating an edit function. On Editing the data, the ListView is
regenerated, reading it's needed data from List<T> items (effectively
updating itself).
Is there any easier way to do this? It works fine, but I want to add search
capabilities to the ListView items, which if sorted, would no longer share
the same index as the List<T> items. One solution is to resort List<T>
(perhaps having a TempList<T>) so as to show only specific items and ensure
List<T> and ListView indexes still match. Or should I create a int field of
the List<T> items which has a permanent unique index and use this?

What is usually done in such circumstances?
Any help would be appreciated,

Chris

Ps if this isn't the right NG for these sort of questions, please let me
know where I should post them :).
Ignacio Machin ( .NET/ C# MVP ) - 27 Dec 2005 15:20 GMT
Hi,

> Hi all,
> I posted the following in microsoft.public.dotnet.framework.windowsforms
[quoted text clipped - 7 lines]
> The items in the listview have the same index as the ones in List<T>, so I
> have an event which loops through the ListView, and if selected = true,

You can use ListView.SelectedItems no need to iterate in all the items in
the listview.

>the
> data from the corresponding List<T> is used to populate a form - so in
> effect creating an edit function. On Editing the data, the ListView is
> regenerated, reading it's needed data from List<T> items (effectively
> updating itself).
> Is there any easier way to do this?

Not quite understand what you are saying, if you update the corresponding
item in the List<T> and them you bind again the listview ( you do not say if
using bind ) then the answer is yes, that is the way of doing. If you
populate your listview manually you could just update the SubItems of the
item in question. and it's going to be faster this way.

>It works fine, but I want to add search
> capabilities to the ListView items, which if sorted, would no longer share
[quoted text clipped - 6 lines]
>
> What is usually done in such circumstances?

What I do is inherit from ListViewItem and add a new property wich return a
reference to the object I'm holding, then you have direct access to the
object and you do not need to sync the view from the model ( the list ).

Take a look at MVC pattern in wikipedia

Signature

Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.