Ok, estoy teniendo más problemas con mi control C# WPF ListView. Aquí está en todo su esplendor:WPF Listview Acceso a SelectedItem y a los subelementos
<Window x:Class="ebook.SearchResults" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="ISBNListView" Height="503" Width="1004">
<Grid>
<ListView Name="listView1" Margin"22,30,33,28" MouseDoubleClick="getSelectedItem" >
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="ISBN" Width="150" DisplayMemberBinding="{Binding ISBN}"/>
<GridViewColumn Header="Title" Width="350" DisplayMemberBinding="{Binding Title}"/>
<GridViewColumn Header="Author" Width="350" DisplayMemberBinding="{Binding Author}" />
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
estoy llenando la vista de lista con lo siguiente:
XDocument xdoc = XDocument.Load(GlobalVars.docPath + "\\tempSearchResults.xml");
var items = from item in xdoc.Descendants("Book")
select new
{
ISBN = item.Element("ISBN").Value,
Title = item.Element("Title").Value,
AuthTexts = item.Element("Author").Value
};
foreach (var item in items)
{
listView1.Items.Add(new { ISBN = item.ISBN, Title = item.Title, Author = item.AuthTexts });
}
Estoy teniendo un diablo de un tiempo de recuperación de datos de una fila cuando se se hace doble clic. DoubleClick abre un cuadro de mensaje con todos los datos de la fila, parece que no puedo obtener solo un subelemento o datos de la celda. Digamos que una fila tiene ISBN: 1234567 Título: Hurrr Autor: Waldo, ¿cómo recupero el ISBN o solo el título?
private void getSelectedItem(object sender, MouseButtonEventArgs e)
{
System.Windows.MessageBox.Show(listView1.SelectedItems[0].ToString());
}
Todavía nuevo para C# y .Net y golpeando mi cabeza contra la pared. Me imagino que esto debería ser bastante simple.
¡Eso tiene perfecto sentido! Agregué un libro de la clase como: public class Libro { cadena pública ISBN {get; conjunto; } cadena pública Título {get; conjunto; } cadena pública Author {get; conjunto; } } Cuando hago doble clic en una fila, aparece el siguiente error en la línea de creación de instancias del libro que proporcionó: No se puede convertir el objeto del tipo '<> F_AnonymousType1'3 [System.String, System.String, System.String ] 'para escribir' Libro ' – Dave
Aún está agregando instancias de tipo anónimo a su ListView. Respuesta actualizada – dtb
¡Entendido! Lo entiendo ahora, tiene sentido. ¡Gracias! – Dave