Hallo,
nachdem ich nun schon länger verzweifelt erfolgflos suche, erstelle ich nun doch einen Thread. Ich möchte eine ObservableCollection an ein DataGrid binden. Das funktioniert auch soweit:
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}"/>
public Sender()
{
InitializeComponent();
port = new SerialPort();
dateien = new ObservableCollection<Datei>();
DataContext = dateien;
dateien.Add(new Datei("Datei1", "20.01.2014", "11:59", "12:01", "100k"));
dateien.Add(new Datei("Datei2", "20.01.2014", "11:58", "12:02", "100k"));
}
public class Datei : INotifyPropertyChanged
{
private string name;
public string Name
{
get { return this.name; }
set
{
if (this.name != value)
{
this.name = value;
OnPropertyChanged("Name");
}
}
}
private string datum;
public string Datum
{
get { return this.datum; }
set
{
if (this.datum != value)
{
this.datum = value;
OnPropertyChanged("Datum");
}
}
}
...
...
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string info)
{
PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if (propertyChanged != null)
propertyChanged(this, new PropertyChangedEventArgs(info));
}
#endregion
}
Nun möchte ich gern
DataContext = this;
setzen weil ich auch andere Controls außer des DataGrids binden möchte, die mit
dateien
nichts zu tun haben und da bekomme ich die Datenbindung mit dem DataGrid nicht hin.
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=dateien}">
funktioniert nicht. Was mache ich da falsch?
Grüße, Alex
Final no hay nada más
dateien besitzt keinen öffentlichen get Accessor
dh:
Schreib
public ObservableCollection<Datei> Dateien{get{return dateien;}}
und binde auf Dateien.
Hallo Robin,
das hat funktioniert. Danke für die Antwort. Eine Frage hätte ich noch: Wie kann ich
dataGridFiles.DataContext = this;
in XAML bewältigen?
<DataGrid>
<DataGrid.DataContext>
<!-- Hier komme ich nicht so recht weiter/-->
</DataGrid.DataContext>
</DataGrid>
Grüße, Alex
Final no hay nada más
Namesspace deklarieren z.B
<Window
xmlns:dc="clr-namespace:AssemblyName"
>
.
.
.
<DataGrid>
<DataGrid.DataContext>
<dc:ClassName>
</DataGrid.DataContext>
</DataGrid>