Gewusst wie: Festlegen des ausgewählten Elements eines DataGrid in WPF mit MVVM-Anwendung programmgesteuert?

Ich habe die gebundenDataTable zumDataGrid Steuerung. Wie kann ich das ausgewählte Element einstellen?programmatisch ?

Beispiel

In meinemview model Ich habe eine Eigenschaft vom Typ DataTable, um das DataGrid zu binden

 private DataTable sizeQuantityTable;

 public DataTable SizeQuantityTable
 {
        get
        {
            return sizeQuantityTable;
        }
        set
        {
            sizeQuantityTable = value;
            NotifyPropertyChanged("SizeQuantityTable");
        }
  }

MeineXAML

<DataGrid 
            ItemsSource="{Binding SizeQuantityTable}"
            AutoGenerateColumns="True" 
            Margin="0,0,0,120" />

Dasconstructor des View-Modells (Zuweisen von Dummy-Werten)

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);

OK. Ich habe nämlich drei Spalten angelegtsizeQuantityColumn, sColumn undmColumn und fügte hinzu, nämlich drei Zeilenrow1, row2 undrow2.

Nehmen wir also an, ich möchte das ausgewählte Element als festlegenrow2 (In der Ansicht sollte also die zweite Zeile markiert sein).

Wie kann ich das machen?

BEARBEITEN

Ich habe dieSelectedIndex des DataGrid auf 1. (also sollte die zweite Zeile ausgewählt sein). Imdesign time Es wird als ausgewählt angezeigt. Aber nicht zur Laufzeit. Sie können es in der folgenden Momentaufnahme sehen.

Das ultimative Problem ist alsoNicht hervorheben die Reihe.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage