1

かなり基本的であるはずのWindows Phone 7アプリケーションを作成しています。Windows Phone 7 - 選択したアイテム(ObservableCollectionにバインドされたリストボックスデータ)を「更新」ページに移動

ObservableCollection(「Entries」と呼んでいます)を含む、作成したクラス(「EntrySheet」)を含むビューモデル(「MainViewModel」)があります。

My MainPage.xamlには、App.ViewModel.EntrySheet.Entriesにバインドされたデータであるリストボックスが含まれています。これは完全にリストを表示するために動作し、ObservableCollectionへのエントリの追加はListBoxに反映されます。

しかし、私が頭に浮かべることができないのは、選択したエントリを更新ページに「渡す」適切な方法です(これにより、ユーザーはエントリのフィールドを変更できます:名前、金額、日付など) MainPageに戻るとListBoxに反映されます)。

ObservableCollectionに「SelectedItem」が存在すると思いましたが、私はちょうどそのようなものを使うことができる更新ページに移動できました:App.ViewModel.EntrySheet.Entries.SelectedItem 。

私は本当にこれについて助けてくれてありがとう、また、私のアプリをより良く構成するための建設的な批判を歓迎するだろう。

+0

礼儀誰もがこの上の任意の入力を持っていますか?どんな助けでも大歓迎です。 – CanadianMark

+0

私は1つの解決策を見つけ出すことができましたが、それは厄介です。 私のクラス 'Entry'の静的インスタンスとselectedIdxという整数を追加しました ユーザーがリスト内のアイテムを「タップ」すると、タップされたリストアイテムにApp.Entryを設定し、選択したインデックスを設定し、編集ページに移動します。 編集ページで、ユーザーが「保存」をクリックすると、選択したインデックスを使用してApp.ViewModelで適切なエントリを更新できます。 これは「適切な」解決策ではないようですが、これが他の人たちのやり方であれば、私はそれを学びます! – CanadianMark

答えて

0

私はこれが後半のアンヴェールであることを知っていますが、今私はあなたの質問を偶然見つけてしまいました。

ここにあなたのための可能なソリューションです:これはで選択した項目の背後にあるデータ・オブジェクトと対話することができます

XAML

<ListBox Name="listBox" Tap="listBox_Tap"> 
    <!-- Some code --> 
</ListBox> 

C#

private void listBox_Tap(object sender, GestureEventArgs e) 
{ 
    DataObject dataObject = (sender as ListBox).SelectedItem as DataObject; 
    //Do something with dataObject 
} 

リストボックスWindows Phone Geek

関連する問題