簡體   English   中英

獲取對象之間的引用

[英]Get reference from object to other

以下是我的代碼塊:

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");
        }
    }
}

在上面的代碼中,在MyClass內部創建了ClearPendingBill對象。 是否有可能以某種方式從ClearPendingBill對象引用MyClass對象?

當然,您必須在構造時通過它,或通過ClearPendingBill上的其他方法來傳遞它。

如果您寫了:

ClearPendingBill cpb = new ClearPendingBill(this);

它將為擁有對象提供一個引用(當然,您需要一個構造函數來處理它)。 MyClass上的靜態方法始終可以訪問(只要它們是公共的)。

正如所寫的那樣,沒有辦法獲得擁有的對象。

並非沒有反向引用,因為該對象可能包含多個(或不包含)對象。

我假設您要通知包含類屬性已更改。 一種方法是讓MyClassClearPendingBill類的PropertyChanged事件添加一個處理程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM