数据绑定计算字段 [英] DataBinding to Calculated Field
问题描述
我运行到哪里我想一个DataGrid的DataTextColumn绑定到计算字段的小问题。
I'm running into a small problem where I'm trying to bind a DataTextColumn of a DataGrid to a Calculated Field.
WPF
<DataGrid ItemsSource="{Binding Path=CurrentRoster, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
AutoGenerateColumns="False"
AlternatingRowBackground="Gainsboro"
AlternationCount="2">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Student Enrolled"
ItemsSource="{Binding Source={StaticResource AvailableStudents}}"
SelectedItemBinding="{Binding Path=Student}">
</DataGridComboBoxColumn>
<DataGridTextColumn Header="Registration" Binding="{Binding Path=RegistrationCosts, StringFormat='{}{0:C}'}"/>
<DataGridTextColumn Header="Lodging" Binding="{Binding Path=LodgingCosts, StringFormat='{}{0:C}'}"/>
<DataGridTextColumn Header="Travel" Binding="{Binding Path=TravelCosts, StringFormat='{}{0:C}'}"/>
<DataGridTextColumn Header="Dining" Binding="{Binding Path=DiningCosts, StringFormat='{}{0:C}'}"/>
<DataGridTextColumn Header="Total Costs" IsReadOnly="True" Binding="{Binding Path=TotalCosts, StringFormat='{}{0:C}'}"/>
</DataGrid.Columns>
在哪里学生是一个小的添加实体对象。 TotalCosts是不是对数据库表的字段,所以我创建了一个局部类此。
Where Student is a Entity object with one small addition. TotalCosts isn't a field on the db tables, so I created a partial class for this.
public partial class Student
{
public Decimal TotalCosts
{
get { return (LodgingCosts + RegistrationCosts + TravelCosts + DiningCosts); }
}
}
我遇到的问题是,TotalCosts是当你在其他任何领域的填不自动更新。我猜是因为它不是作为依赖属性中列出。我该如何解决这一对在没有设置属性?
The problem I'm experiencing is that TotalCosts is not automatically updating when you fill in any of the other fields. My guess it is because it is not listed as a dependency property. How do I resolve this for a property where there is no set ?
推荐答案
您可以致电 OnPropertyChanged( TotalCosts)
在 TotalCosts
在于,将刷新绑定
You can call OnPropertyChanged("TotalCosts")
in the setters of each property that TotalCosts
depends on, it will refresh the binding
这篇关于数据绑定计算字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!