如何从基类访问派生类字段

本文关键字:派生 字段 访问 基类 | 更新日期: 2023-09-27 18:10:38

我在类库中从ComboBoxItem创建了一个派生类。

class CustomComboBoxItem : System.Windows.Controls.ComboBoxItem
{
    public string SupplierID { get; set; }
}

我将每个CustomComboxBoxItem赋值到一个ComboxBox

while (dbReader.Read())
        {
            CustomComboBoxItem BusinessNameItem = new CustomComboBoxItem();
            BusinessNameItem.Content = dbReader["BusinessName"].ToString();
            BusinessNameItem.SupplierID = dbReader["SupplierID"].ToString();
            ComboBoxControl.Items.Add(BusinessNameItem);
        }

我现在的问题是如何从其他形式访问SupplierID ?

如何从基类访问派生类字段

将ComboBoxItem转换为CustomComboBoxItem

ComboBoxItem item = .....
CustomBoxItem castedItem  = item as CustomBoxItem;
if(null != castedItem)
{
    var supplier = castedItem.SupplierID;
}

也可以在foreach循环中这样做。

foreach(var item in ComboBoxControl.Items)
{
    CustomBoxItem castedItem  = item as CustomBoxItem;
    if(null != castedItem)
    {
        var supplier = castedItem.SupplierID;
    }
}