Невозможно заставить DataGrid работать с ObservableCollection - PullRequest
2 голосов
/ 14 октября 2010

Все компилируется, но во время выполнения отображается пустая строка.Если я пытаюсь отредактировать запись, она говорит "Нет установленного XPath".Что я делаю неправильно?Я попробовал множество вариантов, не имея интерфейса 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 Ответ

4 голосов
/ 14 октября 2010

Это просто.В вашем классе вместо свойств есть поля.

Измените код на:

    public string Name{ get; set;}
    public string Value{ get; set;}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...