Почему ListBox.Items.IsReadOnly = true?(F # / Silverlight) - PullRequest
0 голосов
/ 30 ноября 2010

Я пытаюсь удалить некоторые объекты из созданного мной ListBox, и по какой-то причине ListBox.Items.IsReadOnly имеет значение true.

Следующие вызовы не работают:

myListBox.Items.Add("whatever")
myListBox.Items.Add("stuff")
myListBox.Items.Remove("whatever")

Я получаю исключение:

{System.InvalidOperationException: Operation not supported on read-only collection.
   at System.Windows.Controls.ItemCollection.RemoveImpl(Object value)
   at System.Windows.Controls.ItemCollection.RemoveInternal(Object value)
   at System.Windows.PresentationFrameworkCollection`1.Remove(T value)

Я могу установить ListBox.ItemsSource, но работать с .Items намного проще.Я создаю ListBox следующим образом:

let mutable myListBox= new ListBox()

Любые идеи / предложения будут с благодарностью.Спасибо.

Ответы [ 2 ]

3 голосов
/ 30 ноября 2010

Я не уверен в синтаксисе F #, но вы должны установить ListBox.ItemsSource.

Если вы создаете ObservableCollection, а затем установите его на ItemsSource, вы можете добавлять и удалятьпредметы из коллекции и список будут обновляться автоматически.

2 голосов
/ 01 декабря 2010

Следующий код отлично работает для меня:

open System.Windows.Controls
let l = ListBox()
l.Items.Add("An item")
l.Items.Add("Another item")
l.Items.Remove("An item")

Делаете ли вы что-то еще между созданием списка и попыткой добавить элементы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...