Проблема с DataGrid при выборе неуникальных элементов - PullRequest
0 голосов
/ 07 февраля 2012

С простой сеткой данных, если у меня есть неуникальные предметы, щелчок ячеек не работает правильно.

Я создал приложение WPF, добавил сетку данных (по умолчанию, как есть) и добавил в MainWindow следующее:

        dataGrid1.Columns.Add(new DataGridTextColumn());
        ((DataGridTextColumn)dataGrid1.Columns[0]).Binding = new Binding(".");

        dataGrid1.Items.Add("Jack");
        dataGrid1.Items.Add("Jill");
        dataGrid1.Items.Add("Mary");
        dataGrid1.Items.Add("Jack");
        dataGrid1.Items.Add("Rick");

Если я нажимаю кнопку со стрелкой вверх или вверх / вниз, я часто выделяю 2 ячейки. Если я уберу второй «Джек», все будет нормально.

Какие-либо предложения о том, как правильно ориентироваться?

Редактировать: Я забыл первую строку в моем исходном сообщении.

Редактировать: Рабочий раствор

namespace WpfApplication1
{
    public class Person { public string Name { get; set; } }

    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            dataGrid1.Columns.Add(new DataGridTextColumn());

            ((DataGridTextColumn)dataGrid1.Columns[0]).Binding = new Binding("Name");

            dataGrid1.Items.Add(new Person { Name = "Jack" });
            dataGrid1.Items.Add(new Person { Name = "Jill" });
            dataGrid1.Items.Add(new Person { Name = "Mary" });
            dataGrid1.Items.Add(new Person { Name = "Jack" });
            dataGrid1.Items.Add(new Person { Name = "Rick" });
        }
    }
}

1 Ответ

1 голос
/ 07 февраля 2012

Оберните их в объект, эти элементы управления не предназначены для строк.например,

public class Person { public string Name { get; set; } }
((DataGridTextColumn)dataGrid1.Columns[0]).Binding = new Binding("Name");

dataGrid1.Items.Add(new Person { Name = "Jack" });
//...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...