以下是我的代码块:
class MyClass: INotifyPropertyChanged
{
ClearPendingBill cpb;
public ClearPendingBill CPB
{
get { return cpb; }
set
{
cpb = value;
RaisePropertyChanged("CPB");
}
}
}
public partial class ClearPendingBill : UserControl, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
protected bool SetField<T>(ref T field, T value, string propertyName)
{
if (EqualityComparer<T>.Default.Equals(field, value)) return false;
field = value;
OnPropertyChanged(propertyName);
return true;
}
double _selected_pending_amt = 0;
public string SelectedPendingAmount
{
get { return "₹ " + string.Format("{0:0,0.00}", _selected_pending_amt); }
set
{
SetField(ref _selected_pending_amt, Convert.ToDouble(value), "SelectedPendingAmount");
}
}
}
在上面的代码中,ClearPendingBill的对象是在MyClass中创建的。是否有可能以某种方式从ClearPendingBill对象中引用MyClass对象?
答案 0 :(得分:0)
当然有,你必须在构造上或通过ClearPendingBill
上的其他方法传递它。
如果你写了:
ClearPendingBill cpb = new ClearPendingBill(this);
它会给它一个对拥有对象的引用(当然你需要一个构造函数来处理它)。 MyClass
上的静态方法始终可访问(只要它们是公共的)。
尽管如此,但没有办法获得拥有对象。
答案 1 :(得分:0)
不是没有反向引用,因为对象可以包含多个(或没有)对象。
我假设您要通知包含类属性已更改。一种方法是让MyClass
为PropertyChanged
类的ClearPendingBill
事件添加处理程序。