Ошибка редактирования ячейки таблицы данных wpf: (привязка TwoWay или OneWayToSource не может работать со свойством только для чтения) - PullRequest
0 голосов
/ 11 июля 2019

У меня есть DataGrid со следующими свойствами:

<DataGrid x:Name="dg_words" ItemsSource="{Binding}" AutoGenerateColumns="False">
                <DataGrid.Columns>  
                    <DataGridTextColumn Header="Id" Binding="{Binding id}" />
                    <DataGridTextColumn Header="word" Binding="{Binding word}" IsReadOnly="False"/>                        
                </DataGrid.Columns>
</DataGrid>

Эта DataGrid состоит из двух столбцов. Первый столбец доступен только для чтения (Id), а второй - для редактирования (слово).

Я использовал список для заполнения этой DataGrid.

List<Tuple<int, string>> l = new List<Tuple<int, string>>();
l.Add(new Tuple<int, string>(1, "word 1"));
l.Add(new Tuple<int, string>(2, "word 2"));
l.Add(new Tuple<int, string>(3, "word 3"));

var l1 = (from p in l
          select new { Id = p.Item1, word = p.Item2 }).ToList();

dg_quran_words.ItemsSource = l1;

Когда я пытаюсь отредактировать ячейку в слове столбца, выдается исключение как:

Дополнительная информация: привязка TwoWay или OneWayToSource не может работать с доступным только для чтения свойством "word" типа ...

1 Ответ

0 голосов
/ 11 июля 2019

Спасибо Павел Аниховский

Проблема была решена запиской, которую Павел прокомментировал в моем вопросе. Сначала добавьте следующий класс:

public class c_row
{
    public int id { get; set; }
    public string word { get; set; }
}

и в конце концов: замените последние 4 строки моего кода для заполнения DataGrid.

var l1 = (from p in l
      select new c_row { Id = p.Item1, word = p.Item2 }).ToList();

dg_quran_words.ItemsSource = l1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...