2010-09-14 83 views

回答

1

在您的視圖模型,你希望有一個屬性:

private object content; 
public object Content 
{ 
    get { return content; } 
    set 
    { 
    this.content = value; 
    OnPropertyChanged("Content"); 
    } 
} 

然後在你的主窗口(或您的內容被託管)添加一個ContentControl中:

<ContentControl Content="{Binding Path=Content}" 
       HorizontalContentAlignment="Left" 
       VerticalContentAlignment="Center" 
       Focusable="False"/> 

主要視圖模型將維護已知ViewModel(View All,Search)的列表,並在相應的命令執行中將Content屬性設置爲其中一個ViewModel,Add New命令可能會創建AddNewViewModel的新實例並設置Content屬性。

在該ContentControl中位於把一些數據模板的資源映射的ViewModels相應視圖查看:

<DataTemplate DataType="{x:Type vm:AddNewViewModel}"> 
    <AdornerDecorator> 
    <views:AddNewView DataContext="{Binding}"/> 
    </AdornerDecorator> 
</DataTemplate> 

這是我使用的,我的工作在嚮導的基本格局在這一刻。

+0

謝謝benPearce,我以另一種方式解決了它。 – dpatra 2010-09-16 22:34:18

0

我用了一個ObservableCollection<ViewModelBase>。 然後在每個命令(AddNew,ViewAll等)上添加ViewModel到集合中。但是我在添加之前清除了收藏。

+0

這並沒有太大的意義,因爲你正在使用一個集合,但它會實現你想要的 – benPearce 2010-09-16 23:00:30

相關問題