Je n'arrive pas à comprendre.WPF Datagrid sort indice de l'indice
J'ai créé exemple de code pour la démo ma question, espérant que quelqu'un peut me diriger vers la réponse ...
La question est une fois que la grille de données est triée, l'ID étiqueté et le nom ne correspond plus à la grille de données sélectionnée article.
J'appriciate votre aide ...
Merci
Jeff
<Window x:Class="dgSortTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="dgSortTest" Height="253" Width="403" IsEnabled="True">
<Grid>
<DataGrid AutoGenerateColumns="False" Height="212" HorizontalAlignment="Left" Margin="12,2,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="200" SelectionChanged="dataGrid1_SelectionChanged" RowHeaderWidth="0" AreRowDetailsFrozen="False" CanUserAddRows="True" CanUserDeleteRows="True" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
</DataGrid.Columns>
</DataGrid>
<Label Content="Index: " Name="lblIndex" Height="28" HorizontalAlignment="Left" Margin="228,12,0,0" VerticalAlignment="Top" Width="92" />
<Label Content="ID:" Name="lblID" Height="28" HorizontalAlignment="Left" Margin="228,46,0,0" VerticalAlignment="Top" Width="141" IsEnabled="True" />
<Label Content="Name: " Name="lblName" Height="28" HorizontalAlignment="Left" Margin="228,80,0,0" VerticalAlignment="Top" Width="141" />
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace dgSortTest
{
public partial class MainWindow : Window
{
List<Person> people = new List<Person>();
public MainWindow()
{
InitializeComponent();
people.Add(new Person() { ID = 0, Name = "Jeff" });
people.Add(new Person() { ID = 1, Name = "Tom" });
people.Add(new Person() { ID = 2, Name = "Andy" });
people.Add(new Person() { ID = 3, Name = "Ken" });
people.Add(new Person() { ID = 4, Name = "Zack" });
people.Add(new Person() { ID = 5, Name = "Emily" });
people.Add(new Person() { ID = 6, Name = "Courtney" });
people.Add(new Person() { ID = 7, Name = "Adam" });
people.Add(new Person() { ID = 8, Name = "Brenda" });
people.Add(new Person() { ID = 9, Name = "Bill" });
people.Add(new Person() { ID = 10, Name = "Joan" });
dataGrid1.ItemsSource = from Person in people select Person;
}
private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
int index = dataGrid1.SelectedIndex;
lblIndex.Content = "Index: " + index.ToString();
lblID.Content = "ID: " + people[index].ID;
lblName.Content = "Name: " + people[index].Name;
}
}
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
}
}
Merci beaucoup! Je dois dire que la première suggestion est beaucoup plus facile à comprendre, comme TBO, je ne comprends pas encore ce qui se passe avec xaml. Je suis d'accord avec la création de l'interface utilisateur avec, mais pour faire la plupart du codage là-bas, sans code derrière, m'a confondu. Je suis sûr qu'avec le temps, je l'aurai. –