C# 一个控件的多个ItemSource
我有一个列表框#1,下面有多个文本块项目模板:C# 一个控件的多个ItemSource,c#,wpf,xaml,C#,Wpf,Xaml,我有一个列表框#1,下面有多个文本块项目模板: <ListBox Grid.Row="2" x:Name="ItemListBox" ItemsSource="{Binding Files}" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisib
<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">
我有另一个列表框#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上实现所有功能,所以基本上去掉第二个listbox,我可以将te DragOver、DragLeave和Drop属性移动到第一个listbox,但是第二个listbox的DropFiles ItemsSource属性有问题!任何回复或建议,谢谢 您只能将
ItemsSource
绑定到单个集合
我建议在视图模型上添加一个属性来公开这个合并的集合,并在绑定中使用该属性
否则,如果
Files
和DropFiles
是同一项上的属性,则可以创建一个转换器来接受VM类并生成一个合并的集合。生成一个可观察的集合将取决于您。您是否试图同时将一个列表框绑定到两个集合——一个来自“文件”绑定,另一个来自“DropFiles”绑定?是的,这是正确的!基本上保持ListBox#1不变,但将拖放功能从第二个移动到第一个。