2011-02-07 21 views
0

我做了一個列表框與數據按鈕綁定並綁定到一個文本框。 我希望能夠通過水龍頭&持有移除一個項目。 我probleme:無效操作異常彈出在只讀列表框中刪除一個項目

這裏是我的代碼

按鈕卸妝=(按鈕)發送;

 fileListbox.Items.Remove(remover.Content); 

System.InvalidOperationException了未處理 消息=不支持只讀集合操作。 堆棧跟蹤: àSystem.Windows.Controls.ItemCollection.RemoveImpl(對象的值) àSystem.Windows.Controls.ItemCollection.RemoveInternal(對象的值) à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 2 eventGetter,Func`1 argsGetter,Boolean releaseMouseCapture) àMicrosoft.Phone.Controls.GestureListener.ProcessTouchPanelEvents() àMicrosoft.Phone.Controls.GestureListener.TouchComplete() àMicrosoft.Phone.Controls.GestureListener.Touch_FrameReported(Object sender ,TouchFrameEventArgs e) àSystem.Windows.Input.Touch.OnTouch(Object sender,TouchFrameEventArgs e) àMS.Internal.JoltHelper.Rais eEvent(IntPtr的目標,UInt32的EVENTID,IntPtr的coreEventArgs,UInt32的eventArgsTypeIndex)

THX的幫助

回答

1

你試圖從一個只讀集合中刪除項目。你不能改變這樣的集合。正如你可能期望的名字,你只能閱讀這樣一個集合,你不能改變它。

你的標題引用了一個文本框,但是你的代碼和棧跟蹤使用了一個ItemsSource。

如果您需要更改顯示內容,只需使用戶界面元素爲只讀,並使後備集合可寫。

如果您可以顯示一些示例代碼,我們可以展示如何適當地更改它。

+0

您好無光,將ü喜歡什麼樣的代碼查看 ?? xaml一個?以及如何將集合設置爲可寫? ty – user569574 2011-02-07 13:32:43

1

如果你已經使用ItemsSource財產馬特建議和您的問題暗示,那麼爲了從列表中刪除的項約束ListBox到列表的地方(在視圖模型將是一件好事),將其刪除來自源集合。如果要修改的列表的內容,最好的方法是使用ObservableCollection<T>,這引起了集合改變通知時,收集的變化,所以你的用戶界面將自動更新:

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