Колекцията от елементи трябва да е празна, преди да използвате грешка

Използвам инструментариума, който предоставя контролата MultiSelectionList в wp7, опитвам се да свържа имената към multiselectItem, използвайки свойството ItemsSource в C#.

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
   <StackPanel>
      <TextBlock Text="Please select the satellites from the list:-" />
      <toolkit:MultiselectList Name="multiSelectionList">
          <toolkit:MultiselectItem Content="{Binding Name}" />
      </toolkit:MultiselectList>
   </StackPanel>
 </Grid>

Но получих тази грешка.

Items collection must be empty before using ItemsSource.

Тествах услугата в други части на приложението и тя работи без проблеми.

Моля, посъветвайте ме. Благодаря,


person darking050    schedule 11.01.2012    source източник
comment
къде задавате своя 'MultiselectList' 'ItemsSource' и ако го задавате в код, тогава трябва да имате празен списък, но в примера по-горе вие ​​добавяте към списъка единичен елемент. Мисля, че се опитахте да добавите шаблон за данни към MultiselectList, а не елемент, или греша?   -  person BigL    schedule 12.01.2012


Отговори (1)


Добавяте елемент към MultiSelectList, когато правите:

<toolkit:MultiselectItem Content="{Binding Name}" />

Докато присвоите ItemsSource, което предполагам, че правите в задния код някъде, вече има елемент в списъка (този по-горе). Ето защо грешката се хвърля. Бихте могли ръчно да изчистите списъка, преди да зададете източника, но това не се счита непременно за добра практика. Това, което можете да направите вместо това, е да създадете DataTemplate, а не действително копие на MultiSelectItem. Не съм запознат с този контрол, но опитайте:

<toolkit:MultiselectList Name="multiSelectionList">
  <toolkit:MultiSelectList.ItemTemplate>
     <DataTemplate>
         <toolkit:MultiselectItem Content="{Binding Name}" />
     </DataTemplate>
  </toolkit:MultiSelectList.ItemTemplate>
</toolkit:MultiselectList>
person keyboardP    schedule 11.01.2012
comment
Страхотен отговор и много бързо забравете само едно нещо в XAML. :) ‹toolkit:MultiselectList.ItemTemplate› ‹DataTemplate› ‹/DataTemplate› ‹/toolkit:MultiselectList.ItemTemplate› - person BigL; 12.01.2012
comment
Мисля, че го редактирах точно преди да публикувате коментара :) (Освен ако не пропускам нещо...?) - person keyboardP; 12.01.2012
comment
Съжалявам, може би не сте го направили, може да работи и така, просто беше малко необичайно за мен, винаги използвах синтаксиса, който добавях като коментар тук. :) - person BigL; 12.01.2012
comment
Забелязах те преди време, че отговаряш много бързо и много добре и през повечето време си по-бърз от мен. :) И ние всички правим грешки не сме машини или сме? :Д - person BigL; 12.01.2012
comment
Занимавам се с WP7 dev от известно време, така че много от проблемите са неща, с които съм се сблъсквал и които стоят с дни. Харесва ми да се опитам да помогна, така че хората да не прекарват векове и върху тях :) - person keyboardP; 12.01.2012
comment
И аз мисля по същия начин, само че нямам толкова опит като теб. И сега правя разработка на WP7 за забавление, сигурен съм, че е забавно да го правя и като работа. :) - person BigL; 12.01.2012