我正在使用caliburn micro和Telerik控件进行应用。
我有一个RadGrivView绑定到PurchaseDetails的集合,其中包含行的购买价格的可编辑列。绑定在更新PurchaseDetails对象上的PurchasePrice值时正常工作,但是我需要更新View上绑定到其他对象的其他值。
每当PurchasePrice更新时,我想在模型上引发一个事件。 我已经尝试过NotifyOnSourceUpdated,在列和网格级别没有运气。
<telerik:RadGridView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2"
AutoGenerateColumns="False"
ShowGroupPanel="False"
ItemsSource="{Binding PurchaseDetails}">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataFormatString="N2"
SourceUpdated="FrameworkContentElement_OnSourceUpdated"
TargetUpdated="FrameworkContentElement_OnTargetUpdated"
DataMemberBinding="{Binding .PurchasePrice, Mode=TwoWay,
NotifyOnSourceUpdated=True,NotifyOnTargetUpdated=True}"/>
<telerik:GridViewDataColumn DataFormatString="N2"
DataMemberBinding="{Binding .Amount.Value}" IsReadOnly="True" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
答案 0 :(得分:0)
INotifyPropertyChanged
Interface是(部分)为此目的而设计的。如果您在PurchaseDetails
课程中正确实施,那么您将能够处理该对象上的INotifyPropertyChanged.PropertyChanged
事件:
SelectedPurchaseDetail.PropertyChanged += Detail_PropertyChanged;
...
private void Detail_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "PurchasePrice")
{
// PurchasePrice was changed... update other view model properties here
}
}