Можно ли добавить запись ComboBox по умолчанию с привязкой команды в XAML? - PullRequest
0 голосов
/ 28 сентября 2010

Я работаю над своим первым настоящим шаблоном WPF MVVM-шаблона.

В настоящее время у меня есть несколько ComboBox на различных экранах, которые связаны с классами Collection и свойствами соответствующего класса ViewModel.

У них всегда есть запись с текстом <Add>, который на самом деле является пустым классом объектов, и я в настоящее время использую его для запуска события AddNewObject, если свойство, связанное с SelectedItem, имеет <Add> в своем выводе ToString().Это кажется мне громоздким и слишком тесно связывает View с моделью View.например,

<ComboBox ItemsSource="{Binding AllObjects}" SelectedItem="{Binding SelectedObject}" />

, затем в коде ViewModel:

  public SomeObjectType SelectedObject
  {
    get{return this.fieldSomeObjectType;}
    set
    {
      if(null==value)
        return;
      if(value.ToString().Contains(@"<Add>"))
      {
        if(null!=this.AddNewObject)
        {
          this.AddNewObject;
        }
      }
    }
 }

Есть ли способ в XAML добавить эту дополнительную строку в раскрывающийся список ComboBox и связать ее с командой AddNewObject

1 Ответ

1 голос
/ 28 сентября 2010

Код, который вы написали на ваш взгляд, не имеет ничего общего с вашей бизнес-логикой. Все в порядке. MVVM не говорит, что у вас не должно быть ничего в коде позади представления. Отображение «Добавить» является требованием к представлению и может быть обработано кодом позади представления.

В ASP.NET я делал это, чтобы добавить элемент управления списком к некоторым данным, но также указал некоторые элементы в html, и он объединит их. Вы пробовали это?

использовать CompositeCollection для объединения элемента по умолчанию с источником элементов. http://msdn.microsoft.com/en-us/library/ms742405.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...