我有一个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。
...但我对如何做到这一点有点困惑。有任何想法吗?
提前谢谢!答案 0 :(得分:2)
您的上一列可以像其他列一样绑定。你只需要在后面的代码中进行计算。
我会将最后一列“Balance”绑定到依赖项,该依赖项是根据Transactions的CollectionChanged事件计算的。这样,无论何时进行交易,都会触发重新计算您的依赖关系余额的事件。
oCollection.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(oCollection_CollectionChanged);
private void oCollection_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
CalculatedBalance();
}