C# 响应子类PropertyChanged事件
我有一个类BaseSample,它使用另一个类MainData作为其字段之一:C# 响应子类PropertyChanged事件,c#,.net,vb.net,visual-studio,C#,.net,Vb.net,Visual Studio,我有一个类BaseSample,它使用另一个类MainData作为其字段之一: Protected _sampleData As MainData Public Property SampleData() As MainData Get Return _sampleData End Get Set(ByVal value As MainData) _sampleData = value End Set End Pr
Protected _sampleData As MainData
Public Property SampleData() As MainData
Get
Return _sampleData
End Get
Set(ByVal value As MainData)
_sampleData = value
End Set
End Property
MainData将类ProcessData的集合作为字段,ProcessData将类Measurement的集合作为字段。即:
主要数据
|- IEnumerable (Of ProcessData)
|- IEnumerable (Of Measurement)
这些类是LINQ到SQL文件中的实体。在Measurement类中,当CrossbleOxidazedMass属性更改时,我引发PropertyChanged事件:
Private Sub OnCrucibleOxidizedMassChanged()
RaiseEvent PropertyChanged(Me, New ComponentModel.PropertyChangedEventArgs("CrucibleOxidizedMass"))
End Sub
在BaseSample类中,我希望在任何子代度量实例中响应CrossbleOxizedMass PropertyChanged事件。我该怎么做?迭代所有ProcessDate,对于每个ProcessDate,迭代每个度量并订阅事件 在C#代码中:
设置新样本数据时,请确保取消订阅这些事件。此外,当从
ProcessData
中删除度量值或从SampleData
中删除ProcessData
时,您可能应该取消订阅单个事件,遍历所有ProcessDate,对于每个ProcessDate,遍历每个度量值并订阅事件
在C#代码中:
设置新样本数据时,请确保取消订阅这些事件。此外,当从
ProcessData
中删除测量值或从SampleData
中删除ProcessData
时,您可能应该取消订阅单个事件!谢谢你,丹尼尔。你的回答让我找到了解决问题的办法。太好了!谢谢你,丹尼尔。你的回答使我找到了解决问题的办法。
foreach(var processData in value.ProcessDatas)
{
foreach(var measurement in processData.Measurements)
{
measurement.PropertyChanged += OnMeasurementPropertyChanged;
}
}