Jordan B
Jordan B

Reputation: 109

C# WPF New Window on ListView item double click

I have a list view that is populated from a mysql table, I want to be able to double click on a item in the listview and bring up a new window with more information. How do I pass the first column value to the new window (this is the id of the item)? This way I can make another query to get the rest of the info about the item.

Upvotes: 1

Views: 2114

Answers (2)

Noctis
Noctis

Reputation: 11763

Was having a similar issue with a ListBox wanting to open a window (Different View) with the SelectedItem as the context (in my case, so I can edit it).

The three options I've found are: 1. Code Behind 2. Using Attached Behaviors 3. Using Blend's i:Interaction and EventToCommand using MVVM-Light.

I went with the 3rd option, and it looks something along these lines:

<ListBox x:Name="You_Need_This_Name"  
ItemsSource="{Binding Your_Collection_Name_Here}"
SelectedItem="{Binding Your_Property_Name_Here, UpdateSourceTrigger=PropertyChanged}"
... rest of your needed stuff here ...
>
<i:Interaction.Triggers>
    <i:EventTrigger EventName="MouseDoubleClick">
        <Command:EventToCommand Command="{Binding Your_Command_Name_Here}" 
            CommandParameter="{Binding ElementName=You_Need_This_Name,Path=SelectedItem}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

That's about it ... when you double click on the item you want, your method on the ViewModel will be called with the SelectedItem as parameter, and you can do whatever you want there :)

Upvotes: 1

Chevul Ervin
Chevul Ervin

Reputation: 883

What is meant with MVVM is that you will have for example a ViewModel containing a property SelectedThing bound to the SelectedItem of the listview and a command that gets executed using EventCommand on the MouseDoubleClick event of the View which will execute in the end the operation you want on the SelectedThing which could be also passed in as parameter to the command also by binding.

Upvotes: 0

Related Questions