2012-07-23 4 views
1

프로젝트 지불에 대한 데이터 바인딩이있는 목록 상자가 있습니다. 새 지불을 추가하면 지불이 목록에 추가됩니다. 추가 페이지는 지불을 편집하는데도 사용됩니다. 이 이벤트는 디버그 모드에서 변경된 지불 내역을 볼 수 있지만 ListBoxItem은 업데이트되지 않습니다. 목록 상자 항목을 업데이트하는 이벤트가 호출 될 추가 페이지의 끝에서 :ListboxItems에 대한 바인딩이 업데이트되지 않았습니다.

OnNotifyPropertyChanged("Project"); 

의 코드 :

GlobalNotifier.OnPaymentAdded(); 

을 OnPaymentAdded에만 속성 변경에 대한 통지 방법을 호출 목록 상자 :

<ListBox Name="ListPayments" ItemsSource="{Binding Project.Payments}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid Margin="10,5,10,0"> 
       <StackPanel> 
        <TextBlock FontSize="30" Text="{Binding Name}" /> 
       </StackPanel> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

새 항목이 추가되었지만 기존 항목이 업데이트되지 않는 이유는 무엇입니까? 어떤 생각?

답변

0

Project- 개체가 업데이트되었지만 Payments 개체 (아마도 List 일 것입니다)가 업데이트되지 않습니다.

당신 시도 않습니다 : List -object가 조작 될 경우에는 반드시

  1. 은 (편집 항목 추가/제거), Projects
  2. PropertyChanged -event 화재 당신은 또한 수 List<Project>을으로 전환하십시오.
  3. ObservableCollection으로 전환하는 것이 궁금한 점이 있다면에 대한 재정의를 구현하십시오. 목록을 보여주는보기에서을 클릭하고 거기에서 PropertyChanged -events (Project, Payments etc.)를 호출하십시오.

이 중 하나가 문제를 해결해야합니다. 모두 맛과 취향의 문제입니다.

+0

지급금 유형이 ICollection입니다. 지불을 ObservableCollection으로 전환하면 문제가 해결되었습니다. 고맙습니다! –

0

항목 속성과 같은 소리는 종속성 속성이 아니거나 아무도 속성 변경되지 않습니다.

+0

OnNotifyPropertyChanged에 중단 점이 있으며 추가 및 편집시에 호출됩니다. 그러나 항목은 업데이트되지 않습니다. 나 또한 Project.Payments를 가리키는 ItemsSource로 자체 propery _Payment_를 사용하려고 시도했지만 아무 것도 변경되지 않았습니다. _ 의존성 속성이란 무엇입니까? –

+0

종속성 속성은 다른 변수 또는 일반적으로 개체에 종속되는 속성입니다. 저기 이러한 속성에 좋은 기사가 많이있다, 구글은이 하나에 당신의 친구가 될 것입니다. –

+0

항목 클래스의 소스를 게시 할 수 있습니까? – Zak

관련 문제