2012-02-22 10 views
0

私はObservableCollectionsのセットを持っています。これは、ListBoxの形式で選択肢をユーザに提示するために使用されています。これらは、ユーザがログインしたときにサーバからのXMLデータに基づいて設定される。無効なSelectedItemのためにInvalidOperation例外を発生させずにListBoxを再設定できますか?

UIでは、これらのコレクションは、例えば、リストボックス。

public constructor() { 
    listBox.ItemsSource = App.Current.myCollection; 

ログアウトすると、ユーザーは、(私は、ログインページに転送し、OnNavigatedToのすべてのバックエントリを削除)バック最初のページにもたらされます。

ここに問題があります:リロギングするとき、リストボックスが一時的な状態(最初にログインしたときの状態)を持つことができるように、コレクションを再作成するのは難しいようです。

他の驚くべき発見は、ページがナビゲートされていなくても、自分のコレクションにバインドされたリストボックスは、コレクションを手動で消去して再投入したときに選択を変更するということです。

より洗練されたアプローチのアイデアはありますか?

+0

コードを少し表示できますか?あなたの問題が何であるかを正確に知ることは難しいです。 – ColinE

+0

コードの不足を指摘してくれてありがとう、最小限のサンプルを抽出すると実際にそれが解決されました;) –

答えて

0

犯人が見つかりました。コンストラクターでデータバインディングを設定すると、コレクションの変更を早期に適用できます。適切なアプローチは、ItemsSourceをLoadedまたはOnNavigatedに割り当てることです。

関連する問題