2012-08-22 104 views
3

我正在使用Caliburn Micro的WPF項目。我遇到了一個問題,即View第二次打開時,View中的控件沒有得到更新。數據綁定第一次正常工作。Caliburn Micro - UI未更新第二次

當我第二次瀏覽視圖時,我可以看到數據綁定屬性正在獲取新值並調用NotifyOfPropertyChange(),但更改未反映在UI中。有任何想法嗎?我查看繼承PropertyChangedBase()

下面是我在視圖模型屬性

public string Info 
{ 
    get { return _info; } 
    set { _info = value; NotifyOfPropertyChange(() => Info); } 
} 

public IEnumerable<ComponentInfo> BondableComponents 
{ 
    get { return _bondableComponents; } 
    set { _bondableComponents = value; NotifyOfPropertyChange(() => BondableComponents); } 
} 

和XAML如果新項目上的更新出現

<TextBox Name="Info" Grid.Row="0" Grid.Column="0" IsReadOnly="True"/> 
<DataGrid ItemsSource="{Binding BondableComponents}"> 
+0

你可以顯示打開和關閉視圖的代碼嗎? – nemesv

+0

你是在OnInitialize而不是OnActivate或OnViewLoaded中填充數據嗎? –

回答

-1
BindableCollection<ComponentInfo> Bondable 

應採用... - 編輯 - 在GitHub上回答。

+0

如果將集合替換爲另一個集合,UI仍應更新,則不會提及從集合中添加/刪除項目,但OP已經引發屬性通知事件。可綁定集合可以解決此問題的功能是什麼? – Charleh

+0

那麼OP將只有一個Getter .... – mvermef