Edward Leno
Edward Leno

Reputation: 6327

DataGrid trouble selecting non-unique items

With a simple datagrid, if I have non-unique items, the clicking of the cells does not work correctly.

I created a WPF application, dropped in a datagrid (defaults as is) and added the following to 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");

If I click around or up/down arrow, I often get 2 cells highlighted. If I remove the 2nd 'Jack', everything works fine.

Any suggestions on how I can navigate properly?

Edit: I forgot the first line on my original post.

Edit: Working solution

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" });
        }
    }
}

Upvotes: 0

Views: 94

Answers (1)

brunnerh
brunnerh

Reputation: 184526

Wrap them in an object, those controls are not meant for strings. e.g.

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

dataGrid1.Items.Add(new Person { Name = "Jack" });
//...

Upvotes: 1

Related Questions