36
ListBox
で文字列をソートする必要がありますが、DataContext
で別のコンポーネントによってビューモデルにバインドされています。だからObjectDataProvider
を使用するthis exampleのように、XAMLでビューモデルを直接インスタンス化することはできません。私のXAMLでListBoxをXAMLのみでコードビハインドなしで並べ替えるにはどうすればよいですか?
:
<ListBox ItemsSource="{Binding CollectionOfStrings}" />
私の見解モデルでは:別のコンポーネントで
public ObservableCollection<string> CollectionOfStrings
{
get { return collectionOfStrings; }
}
:
view.DataContext = new ViewModel();
の背後にはコードがありません!したがって、純粋にXAMLを使用して、どのようにListBoxの項目を並べ替えるのですか?ここでも、XAMLはビューモデルのインスタンス化を所有していません。
ありがとう、ケント! CollectionViewSourceのSource属性をバインドすることは、私の欠けているリンクでした。それは有り難いです。この場合、私はカスタムVMクラスを望んでいなかったので、私はちょうど良い文字列コレクションのために明らかに働くPropertyName属性を残しました。 –
また、そこにいる見物人には、SortDescriptionタグはDirection属性を取ります。 –
ListBoxがアイテムのリストであるオブジェクトのプロパティを表すDataTemplateの一部である場合はどうなりますか? ListBox内の並べ替えをどうにかできないのですか? –