2012-05-22 2 views
0

Как установить несколько DataContexts? У меня есть модель и ViewModel - я могу написать только один контекст данных в XAML в Windows.DataContext, напримерНастройка нескольких DataContexts в WPF C#

<Window.DataContext> 
    <v:FacebookViewModel/> 
</Window.DataContext> 

, а затем в конструкторе или на кнопку мыши, я могу просто написать _faceViewModel = (FacebookViewModel)this.DataContext;. Это установит dataContext.

Мой вопрос: у меня есть 2 ViewModels, и я хочу, нажав кнопку или, если у вас есть идея, изменить datacontext для моего второго ViewModel TwitterViewModel - как это сделать? Я изучаю WPF сейчас, и я действительно новичок в этом ...

ответ

0

Вы можете изменить его программно, используя свойство DataContext. Я думаю, что лучший способ - написать DataTemplates для ваших ViewModels и установить их в необходимом контейнере (если у вас есть модели с разными внешними формами). Если ваш vm имеет одинаковые образы, то может быть, вы думаете, что инкапсуляция различной логики соответствует одной модели.

class VM 
{ 
    private IVMImplementation manager = null; 

    public VM(IVMImplementation manager) { this.manager = manager; } 

    public SetManager(IVMImplementation manager) { this.manager = manager; } 
} 
class TwitterVMManager : IVMImplementation {} 
class FacebookVMManager : IVMImplementation {} 

Я считаю, что он будет работать быстрее, чем изменение DataContext ..

Смежные вопросы