一个控件的多个ItemSource

本文关键字:控件 ItemSource 一个 | 更新日期: 2023-09-27 18:18:01

我有一个列表框#1下面有多个文本块项模板:

<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>

我想在一个列表框上实现一切,所以基本上摆脱了第二个列表框,我可以将DragOver, DragLeave和Drop属性移动到第一个列表框,但我有第二个列表框的DropFiles ItemsSource属性的问题!任何回复或建议赞赏,谢谢!

一个控件的多个ItemSource

您只能将ItemsSource绑定到单个集合。

我建议在视图模型上添加一个属性来公开这个合并的集合,并在绑定中使用该属性。

否则,如果FilesDropFiles是同一项上的属性,您可以创建一个转换器来接受您的VM类并产生合并集合。这将取决于你产生一个可观察的集合