Hi.
Irgendwie gehen mir die Suchworte langsam aus. Was ich machen moechte ist folgendes:
Ein DataGrid (Ich arbeite in diesem Projekt gezwungenermassen noch mit 1.1) soll eine Liste von (von mir erstellten) Objekten darstellen. Die einfachste Variante die ich bisher gefunden hab sieht so aus:
public class FilterCollection : CollectionBase {
...
}
public class FilterItem {
// Hier mein eigener Kram, z.B.
public string Foo { get { return "Bar"; } }
public string Bla { get { return "Fasel"; } }
}
und irgendwo halt erstelle ich eine solche Collection, befuelle sie mit Items, haenge sie an ein DataGrid und die Properties werden automagisch angezeigt.
Nun moechte ich genau dieses Defaultverhalten aendern: Ich wuerde gerne:
Zunaechst sahen DataGridTableStyle und DataGridTextBoxColumn ganz passabel aus, aber offensichtlich kann ich in diesem Szenario nicht mit MappingName arbeiten.
Eine DataGridTextBoxColumn mit .MappingName "Foo" bezieht sich leider nicht auf die Property Foo. Irgendwelche Tricks wie ich das doch noch hinbekomm?
Die Daten kommen aus keiner Datenbank, es gibt keine irgendwie relevante Datenquelle bisher, d.h. ADO.Net kann mir nicht helfen.
Danke im voraus,
Ben
Pound for pound, plutonium is about as toxic as caffeine when eaten.
Hallo,
habe exakt das selbe Problem. Ich muss auch mit .Net 1.1 arbeiten und möchte nur bei der Darstellung die Reihenfolge der Spalten ändern.
Ich habe eine Daten-Klasse
public class MyDataClass : IMyData
{
private string _name;
private string _input;
private string _output;
private DataPriority _priority = DataPriority.Normal;
public MyDataClass(string name, DataPriority priority)
{
this._name = name;
this._priority = priority;
}
[ReadOnly(true)]
public string Name
{
get
{
return this._name;
}
}
[ReadOnly(true)]
public string Output
{
get
{
return this._output;
}
set
{
this._output = value;
}
}
[ReadOnly(true)]
public string Intput
{
get
{
return this._input;
}
set
{
this._input = value;
}
}
[ReadOnly(true)]
public DataPriority Prioprity
{
get
{
return this._priority;
}
}
}
class Test
{
private ArrayList _dataItems;
// Hier übergeben ich die Namen der Dateien die sich in einen Ordner befinden,
// woraus dann einzelne MyData objekte erzeugt und in einer ArrayList eingefügt werden
// Anschließend wird die ArrayList der DataSource des DataGrids übergeben.
private String[] DataGridItems
{
set
{
if(value.Count > 0)
{
_dataGrid.DataSource = null;
this._dataItems = new ArrayList();
for(int i=0; i<value.Count; i++)
this._dataItems.Add(new MyDataClass(value[i].ToString(), DataPriority.High));
this._dataGrid.DataSource = this._dataItems;
}
}
}
Der DataGrid zeigt jetzt die Spalten in dieser Reihenfolge an:
Prioprity | Output | Name | Intput |
und ich hätte gerne das ganze in der Reihenfolge dargestellt:
Name | Prioprity | Intput | Output |
Wie kann ich das beeinflussen?
Bin für jeden Hinweis dankbar.
Gruß
Hossain
Hier die Lösung.