Привязка для взаимодействия через интерфейс и отображение свойств в основном интерфейсе

Swift 4:

В контроллере вида, от которого вы хотите скрыть панель навигации.

override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
    super.viewWillAppear(animated)
}

override func viewWillDisappear(_ animated: Bool) {
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
    super.viewWillDisappear(animated)
}
5
задан Community 23 May 2017 в 12:25
поделиться

2 ответа

DataGridView не использует TypeConverter ; PropertyGrid использует TypeConverter .

Если он относится к элементам управления списком, таким как DataGridView , то другой ответ неверен.

Для предоставления настраиваемых свойств на список, вам понадобится один из:

  • ITypedList в источнике данных
  • TypeDescriptionProvider в типе

Оба варианта нетривиальны.

3
ответ дан 15 December 2019 в 01:09
поделиться

Мое предложение - создать a Интерфейс, который "повторно реализует" нужные вам свойства:

Допустим, у вас есть два интерфейса:

public interface IHasName1
{
    String Name1 { get; set; }
}

public interface IHasName2 : IHasName1
{
    String Name2 { get; set; }
}

И класс, реализующий IHasName2:

public class HasTwoNames : IHasName2
{
    #region IHasName1 Member
    public string Name1 { get; set; }
    #endregion

    #region IHasName2 Member
    public string Name2 {get; set; }
    #endregion
}

Теперь, спасибо за выяснение этого, кстати, если у вас есть List с объекты конкретного типа HasTwoNames, и вы привязываете этот список к dgv, он отображает только член (Name2) IHasName2.

«Обходной путь» - создать новый интерфейс «IHasEverything» (Если вы удалите свойство из IHasName2, код все равно будет компилироваться, но вы получите предупреждение о том, что IHasEverything не требует нового ключевого слова.

0
ответ дан 15 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: