Упрощенный подход:
Определите helperArray и создайте его динамически (или статически, если хотите) с длиной подсчета, которую вы хотите создать ваши HTML-элементы. Например, я хочу получить некоторые данные с сервера и создать элементы с длиной возвращаемого массива.
export class AppComponent {
helperArray: Array<any>;
constructor(private ss: StatusService) {
}
ngOnInit(): void {
this.ss.getStatusData().subscribe((status: Status[]) => {
this.helperArray = new Array(status.length);
});
}
}
Затем используйте helperArray в моем HTML-шаблоне.
<div class="content-container" *ngFor="let i of helperArray">
<general-information></general-information>
<textfields></textfields>
</div>
Я использовал и положился на реализацию, от которой я нашел на и старое сообщение форума MSDN несколько лет назад, но недавно я искал вокруг снова и нашел проект SourceForge названным BindingListView. Это выглядит довольно хорошим, я просто не втянул его для замены моей взломанной версии все же.
пакет самородка: Equin.ApplicationFramework.BindingListView
Пример кода:
var lst = new List<DemoClass>
{
new DemoClass { Prop1 = "a", Prop2 = "b", Prop3 = "c" },
new DemoClass { Prop1 = "a", Prop2 = "e", Prop3 = "f" },
new DemoClass { Prop1 = "b", Prop2 = "h", Prop3 = "i" },
new DemoClass { Prop1 = "b", Prop2 = "k", Prop3 = "l" }
};
dataGridView1.DataSource = new BindingListView<DemoClass>(lst);
// you can now sort by clicking the column headings
//
// to filter the view...
var view = (BindingListView<DemoClass>)dataGridView1.DataSource;
view.ApplyFilter(dc => dc.Prop1 == "a");
Несколько решений я могу думать:
Проект SubSonic имеет довольно хорошую реализацию BindlingList<T>
, который является открытым исходным кодом. Хотя это могло бы потребовать, чтобы использование всего двоичного файла SubSonic использовало их реализацию.
я люблю использовать классы от Наборы Питания проект. Довольно просто наследоваться одному из основных наборов там и реализации IBindingListView
.
Вот помощь для вашего метода 2 и 3 Behind the Scenes: Implementing Filtering for Windows Forms Data Binding