Как программно установить выбранный элемент DataGrid в WPF с приложением MVVM?
Я связалDataTable
кDataGrid
контроль. Как я могу установить выбранный пунктпрограммно?
пример
В моемview model
У меня есть свойство типа DataTable для привязки DataGrid
private DataTable sizeQuantityTable;
public DataTable SizeQuantityTable
{
get
{
return sizeQuantityTable;
}
set
{
sizeQuantityTable = value;
NotifyPropertyChanged("SizeQuantityTable");
}
}
мойXAML
constructor
модели вида (присвоение фиктивных значений)
this.SizeQuantityTable = new DataTable();
DataColumn sizeQuantityColumn = new DataColumn();
sizeQuantityColumn.ColumnName = "Size Quantity";
this.SizeQuantityTable.Columns.Add(sizeQuantityColumn);
DataColumn sColumn = new DataColumn();
sColumn.ColumnName = "S";
this.SizeQuantityTable.Columns.Add(sColumn);
DataColumn mColumn = new DataColumn();
mColumn.ColumnName = "M";
this.SizeQuantityTable.Columns.Add(mColumn);
DataRow row1 = this.SizeQuantityTable.NewRow();
row1[sizeQuantityColumn] = "Blue";
row1[sColumn] = "12";
row1[mColumn] = "15";
this.SizeQuantityTable.Rows.Add(row1);
DataRow row2 = this.SizeQuantityTable.NewRow();
row2[sizeQuantityColumn] = "Red";
row2[sColumn] = "18";
row2[mColumn] = "21";
this.SizeQuantityTable.Rows.Add(row2);
DataRow row3 = this.SizeQuantityTable.NewRow();
row3[sizeQuantityColumn] = "Green";
row3[sColumn] = "24";
row3[mColumn] = "27";
this.SizeQuantityTable.Rows.Add(row3);
ХОРОШО. Я создал три столбца, а именно,sizeQuantityColumn
sColumn
а такжеmColumn
и добавил три строки, а именно,row1
row2
а также .row2
Так что давайте'скажем, я хочу установить выбранный пункт какrow2
(Таким образом, в представлении, второй ряд должен быть выделен).
Как я могу это сделать?
РЕДАКТИРОВАТЬ
Я жестко закодировалSelectedIndex
DataGrid до 1. (Таким образом, следует выбрать вторую строку). Вdesign time
это показывает, как выбран. Но не во время выполнения. Вы можете увидеть это на снимке ниже.
Так что в конечном итоге проблема заключается вНе выделяя ряд.