Привязка выбранных элементов DataGrid - PullRequest
1 голос
/ 17 января 2012

Ниже приведен код модели на мой взгляд:

private DataRow selectedErrorRow;
public DataRow SelectedErrorRow
{
    get { return selectedErrorRow; }
    set { selectedErrorRow = value; base.RaisePropertyChanged("SelectedErrorRow"); }
}

Тогда это на мой взгляд:

<DataGrid SelectedItem="{Binding SelectedErrorRow,Mode=TwoWay}"

Привязка несколько работает ... Она "получает" значение, когда рисуется сетка данных, но никогда не устанавливает его, когда выбирается / выделяется новое значение .... Есть идеи?

Обратите внимание, что источником элемента для сетки данных является DataTable.

EDIT: Сетка данных находится во всплывающем окне, когда сетка данных отрисовывается, она получает связанное значение (ноль). Однако, как только я выберу / выделю строку, она НЕ будет «устанавливать» ничего. Тем не менее, он «установит» связанное значение null, когда оно будет перерисовано (всплывающее окно открыто, я выбрал строку, закрыл ее и снова открыл). Дело в том, что он никогда не устанавливает значение ни на что, кроме нуля, и он устанавливает его только в течение второго времени, в течение которого он обращается.

Ответы [ 3 ]

4 голосов
/ 18 января 2012

Мне нужно было изменить то, к чему я привязывался. Он должен быть привязан к DataRowView, а не к DataRow.

0 голосов
/ 10 октября 2013

У меня была эта проблема ранее, и я понял это сам.

Не интуитивно понятно, в чем проблема, поскольку вы не можете увидеть реальное значение в отладке, но когда вы сначала связываете данные с DataTable в сетке данных, вы думаете, что в качестве источника используется тип DataTableправо ?Ну, вы не правы, если вы так думаете.

На самом деле сетка данных или привязка (я до сих пор не знаю, где это происходит, поскольку вижу только DataTable на моей стороне) выполняет преобразование DataTable объекта типа DataTable.AsDataView() для его преобразования.на DataView сам по себе, поэтому выбранный элемент имеет смысл для меня быть DataRowView.

Я знаю, что это старый вопрос, но это может пролить свет на тех, кто попадает сюда, а также ищет значение в качестве данныхИсточник особенно конвертеры

0 голосов
/ 22 августа 2012

Попробуйте это:

DataGrid SelectedItem="{Binding Path=SelectedErrorRow,Mode=TwoWay}

Это должно решить вашу проблему.

...