Как получить доступ к полю производного класса из базового класса

#c# #oop #derived-class

#c# #ооп #производный класс

Вопрос:

Я создал производный класс из ComboBoxItem в моей библиотеке классов.

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

И я назначаю каждый из этих пользовательских элементов comboxboxboxitem в ComboxBox

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

            ComboBoxControl.Items.Add(BusinessNameItem);
        }
  

Теперь мой вопрос в том, как я могу получить доступ к идентификатору поставщика из другой формы?

Комментарии:

1. вы пытались использовать элемент как CustomComboBoxItem ?

Ответ №1:

Приведите элемент 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;
    }
}