Как использовать ViewLocation с несколькими представлениями одного типа с помощью ReactiveUI?C#

Место общения программистов C#
Ответить
Anonymous
 Как использовать ViewLocation с несколькими представлениями одного типа с помощью ReactiveUI?

Сообщение Anonymous »

Я использую функцию ViewLocation ReactiveUI со splat autofac для автоматического связывания представлений с моделями представлений. Можно ли иметь несколько представлений для одного и того же типа и выбирать, какое из них использовать на основе некоторого параметра?
Вот простой пример того, что я хотел бы сделать:

Код: Выделить всё

public class Person
{
public string Name {get; set;}
public int Age {get; set;}
}
Представление №1 для класса Person: и код

Код: Выделить всё

public partial class PersonNameView : ReactiveUserControl
{
public PersonNameView()
{
this.WhenActivated(disposables => {
this.Bind(ViewModel, vm => vm.Name, v => v.NameTextBox.Text).DisposeWith(disposables);
});
InitializeComponent();
}
}
Представление №2 для класса Person: и код

Код: Выделить всё

public partial class PersonAgeView : ReactiveUserControl
{
public PersonAgeView()
{
this.WhenActivated(disposables => {
this.Bind(ViewModel, vm => vm.Age, v => v.AgeTextBox.Text).DisposeWith(disposables);
});
InitializeComponent();
}
}
Где-то в основном представлении будет коллекция людей: и в коде

Код: Выделить всё

public partial class MainView : ReactiveUserControl
{
public MainView()
{
//other code
this.WhenActivated(disposables => {
this.OneWayBind(ViewModel, vm => vm.Persons, v => v.PersonItemsControl.ItemsSource).DisposeWith(disposables);
});
InitializeComponent();
}
}
Оба представления регистрируются с помощью autofac:

Код: Выделить всё

builder.RegisterType
().As().InstancePerDependency();
builder.RegisterType().As().InstancePerDependency();
Если мое наблюдение верно, если для одного и того же типа зарегистрировано несколько представлений, выбирается последнее зарегистрированное представление (

Код: Выделить всё

PersonAgeView
в данном случае). Но есть ли способ выбрать, какой из них использовать?
Имейте в виду, что это очень упрощенный пример.

Подробнее здесь: https://stackoverflow.com/questions/766 ... reactiveui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»