2011-02-07 9 views
0

私はリストボックスをボタンでデータ化し、テキストボックスにバインドしました。 タップ&のホールドで1つのアイテムを削除したいと考えています。 私probleme:無効演算例外は、私のコードは読み取り専用のリストボックス内の項目を削除する

ボタンリムーバー=(ボタン)送信者である、ここで

をポップ。

 fileListbox.Items.Remove(remover.Content); 

のSystem.InvalidOperationExceptionが未処理の メッセージ=オペレーション読み取り専用のコレクションではサポートされませんでした。 のStackTrace:System.Windows.PresentationFrameworkCollection 1.Remove(Object value) à proByOrange.views.preDevis.Page1.GestureListener_Tap(Object sender, GestureEventArgs e) à Microsoft.Phone.Controls.SafeRaise.Raise[T](EventHandler 1 eventToRaise、オブジェクト送信者、GetEventArgs 1 getEventArgs) à Microsoft.Phone.Controls.GestureListener.RaiseGestureEvent[T](Func図2a System.Windows.Controls.ItemCollection.RemoveInternal(Object値) àSystem.Windows.Controls.ItemCollection.RemoveImpl(Object値) à eventGetter、Func`1 argsGetter、ブールreleaseMouseCapture) àMicrosoft.Phone.Controls.GestureListener.ProcessTouchPanelEvents()Microsoft.Phone.Controls.GestureListener.Touch_FrameReportedàMicrosoft.Phone.Controls.GestureListener.TouchComplete() à (オブジェクトの送信者、TouchFrameEventArgs e) àSystem.Windows.Input.Touch.OnTouch(Object sender、TouchFrameEventArgs e) àMS.Internal.JoltHelper.Raisヘルプ

答えて

1

ためeEvent(のIntPtrターゲット、UInt32型イベントID、のIntPtr coreEventArgs、UInt32型eventArgsTypeIndex)

THXあなたは読み取り専用のコレクションから項目を削除しようとしています。そのようなコレクションは変更できません。名前で期待されるように、あなたはそのようなコレクションだけを読むことができます、あなたはそれを変更することはできません。

タイトルはテキストボックスを指しますが、コードとスタックトレースはItemsSourceを使用していることを暗示します。

表示内容を変更する必要がある場合は、UI要素を読み取り専用にしてバッキングコレクションを書き込み可能のままにしてください。

サンプルコードを表示することができれば、それを適切に変更する方法を示すことができます。

+0

ハローマットは、コードのどのようなuは希望見る ?? xamlのもの?コレクションを書き込み可能に設定するにはどうすればよいですか? ty – user569574

+0

@ user569574あなたがやっていること/あなたが抱えている問題を実証するもの。実際のコードや新しいプロジェクトを削除したバージョンにすることができます。 –

1

Mattが示唆しているようにItemsSourceプロパティを使用して質問が示唆しているように(ビューモデルでは良い)リストにListBoxをバインドした場合、リストから項目を削除するには、ソースコレクションから。コレクションを発生させているあなたは、リストの内容を変更している場合、最良のアプローチは、ObservableCollection<T>を使用する場合には、コレクションの変更あなたのUIが自動的に更新されますので、通知を変更:

public ObservableCollection MyList { get; private set; } 
... 
// Inside an event handler or view model command handler. 
this.MyList.Remove(itemToRemove);
関連する問題