Reputation: 6327
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
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