无法使DataGrid与ObservableCollection一起使用

时间:2010-10-14 00:19:55

标签: wpf datagrid observablecollection

所有内容都会编译,但在运行时会显示一个空行。如果我尝试编辑条目,则会显示“No XPath set”。我究竟做错了什么?我尝试了很多变化,没有INotifyPropertyChanged界面等。

基类是:

public class Variable : INotifyPropertyChanged 
    {
        public string Name;
        public string Value;

        public event PropertyChangedEventHandler PropertyChanged;

        private void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }
    }

可观察的集合是:

 public class VariableCollection:ObservableCollection<Variable>
    {
         public VariableCollection()
            : base()
        {
        }

         public VariableCollection(List<Variable> list)
            : base(list)
        {
        }
    }

绑定是:

public VariablesView(VariableCollection variables)
        {
            InitializeComponent();

            gridContent.ItemsSource = variables;
        }   

XAML是:

<DataGrid Name="gridContent" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Name}" Header="Name" />
                <DataGridTextColumn Binding="{Binding Value}" Header="Value" />
            </DataGrid.Columns>
        </DataGrid>

1 个答案:

答案 0 :(得分:4)

这很简单。您的班级中有字段而不是属性。

将代码更改为:

    public string Name{ get; set;}
    public string Value{ get; set;}