Как я могу привязать IEnumerable of ViewModels к элементу управления winforms?
В winforms я использую flowlayoutpanel вместо ListBox и пробовал несколько вариантов:
this.OneWayBind(ViewModel, vm => vm.ResultsList, v => v.flowLayoutPanel1.DataBindings)
Я смог использовать некоторый код преобразования непосредственно в View для обновлениянепосредственно в flowLayoutPanel, но он требует непосредственного знания дочернего представления и не подходит мне, и не так автоматичен, как хотелось бы.
this.OneWayBind(ViewModel,
vm => vm.ResultsList,
v => v.flowLayoutPanel1,
selector: value =>
{
this.flowLayoutPanel1.Controls.Clear();
foreach (var value in values)
{
this.flowLayoutPanel1.Controls.Add(new AssemblyInfoView() { ViewModel = value });
}
return this.flowLayoutPanel1;
} ));
Для ясности «дочерний» вид, связанный с моей «дочерней» моделью представления, также происходит от ReactiveUserControl.
Я использую следующий код для регистрации представлений:
Locator.CurrentMutable.RegisterViewsForViewModels(Assembly.GetCallingAssembly());
и проверил, что они зарегистрированы.
Если кто-то сможет помочь, этоПримите во внимание.
В качестве дополнения, если кто-нибудь знает о некоторых более сложных примерах проектов, использующих ReactiveUI, особенно с использованием winforms, которые были бы очень полезны.
Спасибо.