Come posso ordinare un ListBox usando solo XAML e senza code-behind?

Ho bisogno di ordinare le stringhe in un ListBox , ma è associato al modello di vista da un altro componente tramite DataContext . Quindi non posso istanziare direttamente il modello di vista in XAML, come in questo esempio , che usa ObjectDataProvider .

Nel mio XAML:

  

Nel mio modello di vista:

 public ObservableCollection CollectionOfStrings { get { return collectionOfStrings; } } 

In un altro componente:

 view.DataContext = new ViewModel(); 

Non c’è alcun codice dietro! Quindi, usando esclusivamente XAML, come ordinare gli elementi nel ListBox? Anche in questo caso, XAML non possiede l’istanza del modello di visualizzazione.

Usa una CollectionViewSource :

       

Si potrebbe voler avvolgere le stringhe in una class VM personalizzata in modo da poter applicare più facilmente il comportamento di ordinamento.