Mega Code Archive

 
Categories / C# / WPF
 

Get Bounded item from ListView

<Window x:Class="WpfApplication1.Window1"      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">   <Window.Resources>     <XmlDataProvider x:Key="MyData" XPath="/Info">       <x:XData>         <Info xmlns="">           <Song Name="Song 1" Artist="Artist 1"/>           <Song Name="Song 2" Artist="Artist 2"/>           <Song Name="Song 3" Artist="Artist 1"/>         </Info>       </x:XData>     </XmlDataProvider>     <Style x:Key="MyContainer" TargetType="{x:Type ListViewItem}">       <Style.Triggers>         <Trigger Property="IsMouseOver" Value="true">           <Setter Property="Cursor" Value="Hand"/>         </Trigger>         <MultiTrigger>           <MultiTrigger.Conditions>             <Condition Property="IsSelected" Value="true" />             <Condition Property="Selector.IsSelectionActive" Value="true" />           </MultiTrigger.Conditions>           <Setter Property="Foreground" Value="Red" />         </MultiTrigger>       </Style.Triggers>     </Style>     <DataTemplate x:Key="FirstCell">       <StackPanel Orientation="Horizontal">         <CheckBox IsChecked="{Binding Path=IsSelected,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"/>       </StackPanel>     </DataTemplate>   </Window.Resources>   <StackPanel>     <ListView ItemsSource="{Binding Source={StaticResource MyData}, XPath=Song}"             ItemContainerStyle="{StaticResource MyContainer}"             SelectionChanged="mySelectionChanged"            SelectionMode="Single"             Name="myPlaylist">       <ListView.View>         <GridView>           <GridViewColumn CellTemplate="{StaticResource FirstCell}" Width="30"/>           <GridViewColumn Header="Name" DisplayMemberBinding="{Binding XPath=@Name}" Width="80"/>           <GridViewColumn Header="Artist"  DisplayMemberBinding="{Binding XPath=@Artist}" Width="80" />         </GridView>       </ListView.View>     </ListView>     <TextBlock Margin="20" Name="NowPlaying"/>   </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Shapes; using System.Windows.Controls.Primitives; using System.Collections.ObjectModel; using System.Xml; namespace WpfApplication1 {     public partial class Window1 : Window     {       void mySelectionChanged(object sender, SelectionChangedEventArgs e){                      XmlElement mySelectedElement = (XmlElement)myPlaylist.SelectedItem;          NowPlaying.Text = mySelectedElement.GetAttribute("Name").ToString() + " by " +mySelectedElement.GetAttribute("Artist").ToString();       }        } }