我需要在顯示視圖後立即運行一些代碼(假設要顯示消息框)。我試圖覆蓋OnInitialize
,OnViewLoaded
或OnViewAttached
,但它總是相同的。該視圖尚未完全顯示。caliburn當代碼可見時顯示微代碼?
我在顯示視圖時使用了一些動畫,但同時需要將一些數據加載到網格中。如果我將數據加載到OnInitialize
,OnViewLoaded
或OnViewAttached
,則動畫不平滑,因爲它在加載數據的同時發生。
有什麼想法?
我需要在顯示視圖後立即運行一些代碼(假設要顯示消息框)。我試圖覆蓋OnInitialize
,OnViewLoaded
或OnViewAttached
,但它總是相同的。該視圖尚未完全顯示。caliburn當代碼可見時顯示微代碼?
我在顯示視圖時使用了一些動畫,但同時需要將一些數據加載到網格中。如果我將數據加載到OnInitialize
,OnViewLoaded
或OnViewAttached
,則動畫不平滑,因爲它在加載數據的同時發生。
有什麼想法?
給這樣的一個嘗試 - 用couroutine等待動畫結合網格之前完成:
private IEnumerator<IResult> ViewModelStartup()
{
yield return new WaitForAnimation("AnimationName");
BindData();
}
(注 - 您可以加載數據異步,但就是不給它分配)
那麼當你的窗體加載:
private void OnViewAttached()
{
Coroutine.BeginExecute(ViewModelStartup(), new ActionExecutionContext() { View = this.GetView() });
}
(上面的代碼可能不是100%......我想View
必須在根據需要鑄造或創建包裝類)
協同工具WaitForAnimation
的實現將在視圖中搜索命名的動畫,並在觸發回調之前等待它完成。如果找不到動畫,您可能應該發起回調。該調查可用於多個視圖。
(協同程序必須實現IResult
看看在CM的CodePlex網站信息的文檔)
聽起來你正在運行到網格渲染綁定的數據,因此在UI線程鎖定很小,因爲它加載。爲什麼不使用協程來等待動畫完成,然後加載或綁定數據 – Charleh 2013-04-26 19:14:28