DataGrid无法选择非唯一项

时间:2012-02-07 14:09:50

标签: c# wpf datagrid

使用简单的数据网格,如果我有非唯一的项目,单击单元格将无法正常工作。

我创建了一个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 个答案:

答案 0 :(得分:1)

将它们包裹在一个对象中,这些控件不适用于字符串。 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" });
//...