ListView question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Chris

    #1

    ListView question

    Hi all,
    I posted the following in microsoft.publi c.dotnet.framew ork.windowsform s
    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 \)

    #2
    Re: ListView question

    Hi,


    "Chris" <misterjingo@gm ail.com> wrote in message
    news:Jhcsf.2506 0$D47.2508@fe3. news.blueyonder .co.uk...[color=blue]
    > Hi all,
    > I posted the following in microsoft.publi c.dotnet.framew ork.windowsform s
    > 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,[/color]

    You can use ListView.Select edItems no need to iterate in all the items in
    the listview.
    [color=blue]
    >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?[/color]

    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.

    [color=blue]
    >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?[/color]

    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



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


    Comment

    Working...