をSetBinding後にヌル。基本的に私はXmlDataProviderへのバインディングを設定しました(私のデータは動的です)。次に、ビューのCustomSortをMySorter(IComparerを実装する)に設定します。 ItemsSourceを設定するために起こっているいくつかの非同期処理があるかのように -CollectionViewSource.GetDefaultView戻っは、私はWPFユーザーコントロールのコンストラクタでのいくつかのコードを持っているだけで
問題はSetBindingコールの直後に呼び出された場合GetDefaultViewがnullを返すということです。私が同じGetDefaultViewコードを後でボタンクリックハンドラで呼び出すと、それはうまく動作し、nullを返さず、ソートメカニズムはすべてうまく動作していることに注意してください。私の質問は、なぜ直接SetBinding後GetDefaultViewリターンヌルと呼ばれるん
MyListBox.SetBinding(ListBox.ItemsSourceProperty, binding);
ListCollectionView view = CollectionViewSource.GetDefaultView(MyListBox.ItemsSource) as ListCollectionView;
view.CustomSort = new MySorter(); // falls over - view is null
、私はGetDefaultView呼び出す前に待つとnull以外の応答を取得する必要がある場合はありますか?
このコードがどこにあるかを知るために役立つかもしれませんか?おそらく、この時点でバインディング自体は「null」です。 – user7116
元の投稿に誤字がありました(修正済み)、申し訳ありません。 GetDefaultViewのUsers.ItemsSourceは、実際には、最初の行にバインドセットを持つMyListBoxと同じです。したがって、MyListBox.ItemsSourceがnullでない必要がある理由 – user1558012