2013-06-12 2 views
0

У меня есть ListBox # 1 ниже с шаблонами элементов multple TextBlock:Multiple ItemSource для одного элемента управления

<ListBox Grid.Row="2" 
     x:Name="ItemListBox"        
     ItemsSource="{Binding Files}" 
     ScrollViewer.VerticalScrollBarVisibility="Auto" 
     ScrollViewer.HorizontalScrollBarVisibility="Auto"              
     ScrollViewer.CanContentScroll="True"        
     AlternationCount="2" 
     SelectedItem="{Binding FileSelectedItem, Mode=TwoWay}" 
     BorderThickness="1"> 

У меня есть другой ListBox # 2 Я использую, чтобы перетащить файлы, которые являются обязательными к наблюдаемому коллекции, хранит данные.

<ListBox ItemsSource="{Binding Path=DropFiles}" 
         Grid.Row="5" Name="DropBox" 
         AllowDrop="True"      
         BorderThickness="1" 
         AlternationCount="2" 
         DragOver="DropBox_DragOver" 
         DragLeave="DropBox_DragLeave" 
         Drop="DropBox_Drop" > 
      </ListBox> 

Я хочу реализовать все на одном ListBox, поэтому в основном избавиться от второго списка, я могу двигаться тэ DragOver, DragLeave и Отбросьте свойства первого списка, но у меня возникли проблемы с DropFiles ItemsSource собственность второго списка! Любые ответы или предложения оценены, спасибо!

+0

Вы пытаетесь привязать один список к двум коллекциям одновременно - один из привязки «Файлы» и один из привязки «DropFiles»? –

+0

Да, это правильно! В значительной степени сохраняйте ListBox # 1 как есть, но переместите функциональность перетаскивания со второго на первое. – KeyboardFriendly

ответ

2

Вы можете связать только ItemsSource с одной коллекцией.

Предлагаю добавить свойство в вашей модели просмотра, которое предоставляет эту объединенную коллекцию и использовать это свойство в вашей привязке.

В противном случае, если Files и DropFiles являются собственностью на одном и том же месте, вы можете создать конвертер, чтобы принять свой класс VM и получить объединенную коллекцию. Вам будет нужно собрать коллекцию, которая будет наблюдаемой.

Смежные вопросы