Получение объектов в ListBoxView, чтобы показать разные строки? - PullRequest
0 голосов
/ 30 августа 2011

Если я заполню ListBoxView объектами, текст, который будет отображаться для каждого из них, будет текстом, созданным функцией ToString ().Допустим, я хочу использовать ToString () в некоторых случаях и GetSpecialString () в других случаях.Каков наилучший способ переключения между ними?

Должен ли я иметь два разных объекта с одним и тем же базовым классом с разными методами ToString (), или есть способ, которым я могу иметь и ToString () и GetSpecialString() методы в одном классе?

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Вы можете создать оболочку класса для вашей модели представления, которая возвращает различные строки по условию:

class ViewModelListItem {

  public ViewModelListItem(MyObject item) {
    this.Item = item;
  }

  public MyObject Item {
    get;
    private set;
  }

  public override ToString() {
    // to do: add your logic here
    if (...)
      return "case A";
    else
      return "Case B";
  }
}

Тогда просто заполните ListView такими элементами.

0 голосов
/ 30 августа 2011

Если выбор между ToString() и GetSpecialString() исключителен, просто переопределите ToString() в классе, который вы хотите и сделали.

...