2
在Prism V4/MEF/MVVM應用程序中,我得到了一個包含TabControl的View。在MVVM中選擇(之前)時加載TabItem內容
在顯示項目列表的第一個TabItem中,第二個TabItem被禁用,除非選擇了有效的項目。現在當用戶點擊第二個TabItem時,我想加載並準備一些額外的數據到第二個TabItem中。
如何獲得MVVM中TabItem更改的通知?
在Prism V4/MEF/MVVM應用程序中,我得到了一個包含TabControl的View。在MVVM中選擇(之前)時加載TabItem內容
在顯示項目列表的第一個TabItem中,第二個TabItem被禁用,除非選擇了有效的項目。現在當用戶點擊第二個TabItem時,我想加載並準備一些額外的數據到第二個TabItem中。
如何獲得MVVM中TabItem更改的通知?
我想你的意思是延遲加載。啓動此示例並將調試斷點放入ContentViewModel構造函數中。
public MainWindow()
{
InitializeComponent();
var items = new List<TabItemViewModel>
{ new TabItemViewModel{Title="Tab 1", Content = new Lazy<ContentViewModel>(() => new ContentViewModel(1))},
new TabItemViewModel{Title="Tab 2", Content = new Lazy<ContentViewModel>(() => new ContentViewModel(2))}
};
tab.ItemsSource = items;
}
public class TabItemViewModel
{
public string Title { get; set; }
public Lazy<ContentViewModel> Content { get; set; }
}
public class ContentViewModel
{
public ContentViewModel(int i)
{
this.SomeText = "Loaded tab "+i;
}
public string SomeText { get; set; }
}
的XAML模板:
酷,幾乎是我想要的。剩下的唯一問題是:我如何每次更新標籤內容*用戶切換到它(或者在可見時更新它)? – Sam 2010-11-26 10:05:42