Benutzer mit den meisten Antworten
Geänderte Row in Table speichern

Frage
-
Hallo,
ich glaube ich gerade zu doof um meine DataTable zu ändern.
Ich habe ein DataGrid mit DataGridTextColumn in ComportSettings.xaml
<Grid> <DataGrid ItemsSource="{Binding Test, Mode=TwoWay}" AutoGenerateColumns="False" RowHeaderWidth="0" > <DataGrid.Columns> <DataGridTextColumn Header="PortName" Binding="{Binding PortName, Mode=TwoWay}"/> <DataGridTextColumn Binding="{Binding BaudRate, Mode=TwoWay}" Header="BaudRate"/> <DataGridTextColumn Header="DataBit" Binding="{Binding DataBit, Mode=TwoWay}"/> <DataGridTextColumn Header="Parity" Binding="{Binding Parity, Mode=TwoWay}" > <DataGridTextColumn.HeaderStyle> <Style TargetType="DataGridColumnHeader"> <Setter Property="ToolTip" Value="none, odd, even, mark or space"/> </Style> </DataGridTextColumn.HeaderStyle> </DataGridTextColumn> <DataGridTextColumn Header="StopBit" Binding="{Binding StopBit, Mode=TwoWay}"/> <DataGridTextColumn Header="Maschine" Binding="{Binding Maschine, Mode=TwoWay}" Width="100"/> </DataGrid.Columns> </DataGrid> </Grid>
dazu folgenden Codebehind
public ComportSettings() { DataContext = new ComportSettingsModel(); InitializeComponent(); }
dazu dann meine PropertyClass ComportSettingsModel
private DataTable _test;
public DataTable Test { get { SearchPortsAndXMLFile(); DataView test = _xmlComPorts.Tables[0].DefaultView; _test = test.Table; return _test; } set { _test = value; OnPropertyChanged("Test"); } }
Das Ergebniss wird mir auf der Seite angezeigt,
ändere ich allerdings etwas wird der Setter dieser Property nicht angesprochen.
Habe auch für alle anderen Columns Propertys angelegt selbst da werden weder getter noch setter angesprochen.
Kann mir bitte jemand helfen
Danke
Cay
- Bearbeitet joksch_c Donnerstag, 28. August 2014 11:55
Antworten
-
Hallo,
damit der Setter angesprochen wird, müsste sich das DataTable ändern. Das tut es jedoch nie, lediglich der Inhalt ändert sich. Das hat aber keine Auswirkung auf die Instanz deines DataTable.Es gibt diverse Events, die ausgelöst werden wenn sich der Inhalt einer Zelle ändert. Beispielsweise das CellEditEnding-Event.
Du hast aber auch die Möglichkeit Events deiner DataTable zu abonnieren, beispielsweise RowChanged.
Letzteres sollte sich auch MVC/MVVM konform implementieren lassen.Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert joksch_c Freitag, 29. August 2014 05:53
Alle Antworten
-
Hallo,
jemand eine andere lösung wie ich eine DataTable an ein DataGrid binden kann und wo ich dann die einzelnen Zeilen editieren kann ??
Habe ein UserControl xaml und cs die als DataContext meine PropertyClass hat in der ich alles abarbeite.
grüße
Cay
-
Hallo,
damit der Setter angesprochen wird, müsste sich das DataTable ändern. Das tut es jedoch nie, lediglich der Inhalt ändert sich. Das hat aber keine Auswirkung auf die Instanz deines DataTable.Es gibt diverse Events, die ausgelöst werden wenn sich der Inhalt einer Zelle ändert. Beispielsweise das CellEditEnding-Event.
Du hast aber auch die Möglichkeit Events deiner DataTable zu abonnieren, beispielsweise RowChanged.
Letzteres sollte sich auch MVC/MVVM konform implementieren lassen.Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert joksch_c Freitag, 29. August 2014 05:53
-
Hallo,
erstens deine Antwort ist auch richtig aber das beste ist ja mal wieder die Default Einstellungen von VS2013 Express.
Optionen, Debbugging "Eigenschaften und Debugging überspringen" da musste der Haken raus und schon ging alles wie geschmiert.
aber danke habe deines auch ausprobiert.