wpf中listbox添加多个文件

wpf中listbox添加多个文件,第1张

wpf中listbox添加多个文件我有一个实现拖放的ListBox:它适用于单个项目(选择一个项目,然后将其拖动到另一个项目的顶部将其放置在正确的位置),但是当选择多个项目(使用shift或ctrl)时,我尚未能够使其工作。

我的主要问题是我不知道DragDrop.DoDragDrop函数如何处理一批项目。它适用于单个项目(指定FrameworkElement,然后指定数据格式和数据,最后指定拖动效果)。但是,如果我有多个项目,该如何使用DoDragDrop?由于我必须指定一种格式,难道它不会总是期望该格式的单个实例吗?我有几个要拖放的"实体",如何告诉DragDrop.DoDragDrop在一个 *** 作中接受所有这些数据?

当我仅将一个DataObject传递给DoDragDrop方法时,它可以完美地工作,但是我需要找到一种在一次调用中传递多个对象的方法。

到目前为止,我已经尝试创建多个DataObjects并尝试创建一个数组或列表以将其添加到DoDragDrop作为其数据,但这是行不通的。我还尝试了循环DoDragDrop,因此它为我拖动的每个项目调用了一次,但也无效。

当然可以,wpf以 Content来进行加载界面的,Content可是Object对象,只有是满足其继承框架的控件都可以添加进来

<Window x:Class="WpfDemo.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        title="MainWindow" Height="350" Width="525">

    <Grid>

        <ListBox>

            <ListBoxItem >

                <CheckBox Content="CheckBox"></CheckBox>

            </ListBoxItem>

            <ListBoxItem >

                <Button Content="Button"></Button>

            </ListBoxItem>

            <ListBoxItem >

                <TextBlock Text="TextBlock"></TextBlock>

            </ListBoxItem>

            <ListBoxItem >

                <StackPanel Orientation="Horizontal">

                    <Image Source="F:/Icon/fileopen.png"></Image>

                    <CheckBox Content="CheckBox" VerticalAlignment="Center"></CheckBox>

                    <Button Content="Button"></Button>

                    <TextBox Text="TextBox"></TextBox>

                </StackPanel>

            </ListBoxItem>

        </ListBox>

    </Grid>

</Window>

其实这个可以通过绑定父控件的属性来实现,给个Demo 前台: 后台: private void Button_Click(object sender, RoutedEventArgs e) { Button btn = sender as ButtonRelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor).


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11267766.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存