Fragensteller
einzelne Zellen im DataGrid auslesen und neu beschreiben

Allgemeine Diskussion
-
Hallo,
ich arbeite mit einem DataGrid und möchte daraus einzelne Daten (SpaltenHeaderName / Zeilennummer) auslesen und ersetzen.
Alles was ich dazu gefunden habe funktioniert nicht.
Kann mir da jemand weiterhelfen?Frank
- Typ geändert Ciprian Bogdan Mittwoch, 22. Januar 2014 11:47 keine Rückmeldung des Fragestellenden
Alle Antworten
-
Oh, ich suche für C# und WPF,
da gibt es kein DataGridView sonder DataGrid und die Eigenschaft Rows gibt es da leider auch nicht.Frank
-
Achso, ok... Das macht die ganze Sache natürlich etwas komplizierter...
Ich denke, am einfachsten ist es, wenn du das DataGrid an ein ItemSource bindest.Hier ein Script-Beispiel , wie es jemand auf Stackoverflow gelöst hat:
public partial class MainWindow : Window { private ObservableCollection<ConnectionItem> _connectionitems = new ObservableCollection<ConnectionItem>(); public MainWindow() { InitializeComponent(); ConnectionItems.Add(new ConnectionItem { Name = "Item1", Ping = "150ms" }); ConnectionItems.Add(new ConnectionItem { Name = "Item2", Ping = "122ms" }); } public ObservableCollection<ConnectionItem> ConnectionItems { get { return _connectionitems; } set { _connectionitems = value; } } private void button1_Click(object sender, RoutedEventArgs e) { // to change a value jus find the item you want in the list and change it // because your ConnectionItem class implements INotifyPropertyChanged // ite will automaticly update the dataGrid // Example ConnectionItems[0].Ping = "new ping :)"; } } public class ConnectionItem : INotifyPropertyChanged { private string _name; private string _ping; public string Name { get { return _name; } set { _name = value; NotifyPropertyChanged("Name"); } } public string Ping { get { return _ping; } set { _ping = value; NotifyPropertyChanged("Ping"); } } public event PropertyChangedEventHandler PropertyChanged; /// <summary> /// Notifies the property changed. /// </summary> /// <param name="property">The info.</param> public void NotifyPropertyChanged(string property) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(property)); } } }
Ich denke dieses Script sollte dein Problem lösen.
Hier evtl. als XAML:
<Window x:Class="WpfApplication4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication4" xmlns:properties="clr-namespace:WpfApplication4.Properties" Title="MainWindow" Height="300" Width="400" Name="UI" > <Grid> <DataGrid Name="dataGridView" ItemsSource="{Binding ElementName=UI,Path=ConnectionItems}" Margin="0,0,0,40" /> <Button Content="Change" Height="23" HorizontalAlignment="Left" Margin="5,0,0,12" Name="button1" VerticalAlignment="Bottom" Width="75" Click="button1_Click" /> </Grid> </Window>
Solltes du dir die Beschreibung in EN durchlesen und die Quelle ansehen wollen:
http://stackoverflow.com/questions/13906826/edit-cell-in-datagrid-wpflg
Manuel -
Vielen herzlichen Dank Manuel.
Das ist ja ziemlich komplex.
Da frage ich mich, ob ich bei meiner Herangehensweise an mein Problem auf dem richtigen Weg bin
und möchte dafür einen neuen Thread eröffnen. -
Hi,
wenn Du die Datenzeilen über die View-Eigenschaft einer CollectionViewSource bindest, hast Du als aktuelles Objekt (CurrentItem) die aktuell ausgewählte Datenzeile. In diesem Datenobjekt kannst Du auf die Eigenschaften (Spalten / Felder) zugreifen und hast dann den Inhalt der gewünschten Zelle.--
Peter -
*****************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
*****************************************************************************************************Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.