2012-08-22 3 views
3

Caliburn Micro를 사용하는 WPF 프로젝트에서 작업하고 있습니다. 뷰의 컨트롤이 두 번째로 뷰를 열 때 업데이트되지 않는 문제가 발생합니다. 처음으로 데이터 바인딩이 정상적으로 작동합니다.Caliburn Micro - UI가 두 번째로 업데이트되지 않았습니다.

뷰를 호출 할 때 ViewModel을 단계별로 실행할 때 데이터 바인딩 된 속성이 새로운 값을 가져오고 NotifyOfPropertyChange()를 호출하지만 변경 내용이 UI에 반영되지 않은 것을 볼 수 있습니다. 어떤 아이디어? 내보기 아래 PropertyChangedBase()

는 새 항목이 업데이 트에 나타나는 경우

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

보기를 열고 닫는 코드를 표시 할 수 있습니까? – nemesv

+0

OnActivate 또는 OnViewLoaded 대신 OnInitialize에 데이터를 채우고 있습니까? –

답변

-1
BindableCollection<ComponentInfo> Bondable 

사용해야

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

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

및 XAML ... 뷰 모델에서 내 재산 상속 - 편집 - 님이 GitHub에서 답변했습니다.

+0

OP가 이미 속성 알림 이벤트를 발생시키고 있습니다. 컬렉션이 UI가 계속 업데이트해야하는 다른 컬렉션으로 바뀌면 컬렉션에 항목을 추가/제거하는 것에 대한 언급이 없습니다 ..이 문제를 해결하기 위해 바인딩 가능한 컬렉션은 무엇입니까? – Charleh

+0

그러면 OP에는 게터 만 있습니다. – mvermef

관련 문제