Кажется, я не могу обдумать это.
Я создал пример кода, чтобы продемонстрировать мою проблему, надеясь, что кто-то может направить меня к ответу ...
Проблема заключается в том, что после сортировки сетки данных помеченные идентификатор и имя больше не соответствуют выбранному элементу сетки данных.
Я бы оценил вашу помощь ...
Спасибо
Джеф
<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; }
}
}