2010-02-12 8 views
2

사용자 지정 컬렉션에 바인딩 된 여러 열이있는 WPF ListView가 있습니다. 문제는 바인딩 된 것이 아니라 계산 된 다른 열을 어떻게 추가 할 수 있는가하는 것입니다.데이터 바인딩 된 목록 뷰에 계산 된 열을 추가하는 방법?

다음 열에서
  <ListView Name="ui_rptTransactions"> 
       <ListView.View> 
        <GridView> 
         <GridViewColumn Header="Date" 
             DisplayMemberBinding="{Binding Path=Date}" /> 
         <GridViewColumn Header="Category" 
             DisplayMemberBinding="{Binding Path=Category.Name}" /> 
         <GridViewColumn Header="Amount" 
             DisplayMemberBinding="{Binding Path=Amount}" /> 
        </GridView> 
       </ListView.View> 
      </ListView> 

, 나는 "마지막에 직접 확인 균형"마이너스 "합으로 계산되는"밸런스 "를 가지고 싶습니다 특히이 내가 잘 표시하는, 무엇을 가지고 모든 선행 거래 금액 "을 의미합니다. 그 첫 번째 부분은 theBank.LastActualBalance.Amount 공용 속성을 통해 사용할 수 있습니다. (위의 ListView는., theBank.Transactions에

을 ObservableCollection에 바인딩 ...하지만 난 조금 그 작업을 수행하는 방법에 관한 붙어있다. 어떤 아이디어?

들으 사전에!

답변

2

마지막 열은 나머지 열과 마찬가지로 바인드 일 수 있습니다. 코드 뒤에 계산을하면됩니다.

마지막 열 "잔액"을 CollectionChanged에서 계산 된 종속성에 바인딩합니다. 트랜잭션이 발생할 때마다 종속성 균형을 다시 계산하는 이벤트가 발생합니다.

oCollection.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(oCollection_CollectionChanged); 

private void oCollection_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) 
{ 
    CalculatedBalance(); 
} 
+0

Thx. 나는 쉬운 방법이 아니라는 것에 조금 실망했다, grrr. – MrGreggles

관련 문제