Я закончил тем, что создал вспомогательный класс с индексатором и отобразил свой исходный список в этом вспомогательном классе
public class RefAuswahlFilterListe
{
private IList<RefAuswahlFilter> refFilters;
private Auswahl auswahl;
public RefAuswahlFilterListe(Auswahl refauswahl, IList<RefAuswahlFilter> filter)
{
this.refFilters = filter;
this.auswahl = refauswahl;
}
public string this[string rank]
{
get
{
long index;
if(Int64.TryParse(rank, out index))
{
var result = this.refFilters.FirstOrDefault(x => x.Filterrank == index);
return result != null ? result.Filter : String.Empty;
}
return String.Empty;
}
set
{
long index;
if (Int64.TryParse(rank, out index))
{
var result = this.refFilters.FirstOrDefault(x => x.Filterrank == index);
if(result == null)
this.refFilters.Add(new RefAuswahlFilter(){Auswahl = auswahl,Filter = value, Filterrank = index});
else
result.Filter = value;
}
}
}
}
<DataGridTextColumn Header="Filter1"
ToolTipService.ToolTip="Filter Spalte"
Binding="{Binding Path=Filter[1]}">
</DataGridTextColumn>
<DataGridTextColumn Header="Filter2"
ToolTipService.ToolTip="Filter Spalte"
Binding="{Binding Path=Filter[2]}"/>
Я действительно не знаю, так ли это.и у меня все еще есть проблема для создания динамического wpf DataGridTextColumns (может быть, в коде позади?), потому что это должно быть как минимум столько же столбцов, сколько наибольшее количество RefFilters.