WPF 如何将 ListBox.ItemsSource 转换为 ObservableCollection<某些动态类型>

2024-02-04

我编写了一个允许对列表框重新排序的行为。为了正常工作,ListBox 的 ItemsSource 必须是 ObservableCollection<...>,因此我可以调用 Move(from,to) 方法。

我的问题是: 如何将 ListBox.ItemsSource 转换为 ObservableCollection。

我已经尝试过:

ObservableCollection<object> test = listBox.ItemsSource as ObservableCollection<object>;

这是行不通的,因为 ObservableCollection 不支持协方差。


既然您知道要调用的方法,ObservableCollection<T>.Move,您可以使用简单的反射:

var move = listBox.ItemsSource
                  .GetType()
                  .GetMethod("Move");
if (move != null)
{
    move.Invoke(listBox.ItemsSource, new[] { old, new });
}
else
{
    // IList fallback?
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 如何将 ListBox.ItemsSource 转换为 ObservableCollection<某些动态类型> 的相关文章

  • 当我在组合框中选择一个项目时,如何防止 TextChanged 事件?

    我有一个TextChanged http msdn microsoft com en us library system windows forms control textchanged aspx我的事件ComboBox http msd
  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • 检测到严重错误 c0000374 - C++ dll 将已分配内存的指针返回到 C#

    我有一个 c dll 它为我的主 c 应用程序提供一些功能 在这里 我尝试读取一个文件 将其加载到内存 然后返回一些信息 例如加载数据的指针和内存块的计数到 c Dll 成功将文件读取到内存 但在返回主应用程序时 程序由于堆损坏而崩溃 检测
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone

随机推荐

  • 如何取消PHP中的CURL时间限制?

    我正在运行一个相当长的脚本 它获取指定域的内容并解析 html 然后再对所述 html 运行一系列测试 无论如何 脚本在一段时间后超时 我尝试将其放在页面顶部 但仍然没有成功 set time limit 0 这是有问题的错误 cURL e
  • 在数组中存储2个不同的对象

    如何在数组中存储两个不同的对象 因此 当我有例如对象工人 姓名 年龄 工资单 时 另一个对象是计算机 价格 规格 我将这些对象存储在一个类中 class Record top 1 private Worker array w private
  • 为什么我们不能在 NSFetchedResultsController 中更改 FetchRequest?

    示例我在名为 FetchController 的 ListController 处调用了 NSFetchedResultsController NSFetchRequest fetchRequestInContext NSString en
  • 什么是 ^= 运算符? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我刚刚在这里找到了一个答案 其中一个代码示例 我认为是java 使用了一个我以前从未见过的运算符 我搜索了 google 和 SO 但在其
  • “NaTType”对象没有属性“days”

    我的数据集中有一列代表以毫秒为单位的日期 有时它的值是nan 实际上我的专栏是类型str有时它的值是 nan 我想计算本专栏的纪元 以天为单位 问题是在计算两个日期的差异时 pd to datetime now pd to datetime
  • 使用 jQuery 将 div 附加到文档末尾?

    我想使用 jQuery 编写一个函数来附加div到网页的末尾 我希望能够在许多不同的页面上使用该功能 我写了下面的代码 但它不起作用 document append div div helloDiv html hello does noth
  • 街景进入信息窗口[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在信息窗口中显示街景视图 但我
  • 使用预先填充的意图插入联系人

    我正在尝试使用意图插入联系人 并且我尝试了这段代码 取自 Android Sdk 请参阅here http developer android com reference android provider ContactsContract
  • RichEdit 2.0 使用单个 CR 字符作为换行符会导致 SelStart 计算失败 (Delphi XE2)

    当从 Delphi 2006 过渡到 Delphi XE2 时 我们了解到的一件事是 RichEdit 2 0 在内部进行了替换CRLF与单个配对CR特点 这会带来不幸的结果 即放弃基于 VCL 端实际文本字符串的所有字符索引计算 通过跟踪
  • Haskell Netwire:电线的电线

    我正在玩 netwire 包 试图了解 FRP 我有一个简单的问题 从以下简单的电线开始 我能够每 5 秒 大约 发出一个事件 myWire Monad m HasTime t s gt Wire s m a Float myWire ti
  • MATLAB:.mat 版本之间的差异

    The 官方文档 http www mathworks com help matlab ref save html inputarg version陈述如下 But I have noticed that there are other i
  • ImageButtons 数组,从变量分配 R.view.id

    嘿 我的应用程序将使用 64 个 ImageButtons 8x8 的数组 它们都已在我的 XML 布局中声明 名称如 one1 two5 eight8 等 我认为 与其在 Java 中单独声明它们 不如在一些 for 循环中声明它们可能是
  • 使用 Javascript 数组和对象创建表

    我有一个数组和一个对象 labels ID Name object id 1 name richard id 2 name santos 我必须创建一个像这样的表 table thead tr td ID td td Name td tr
  • Spring webclient是非阻塞客户端吗?

    我不明白反应式网络客户端的工作原理 它说 spring webclient 是非阻塞客户端 但是这个 webclient 似乎在等待来自远程 api 的 onComplete 信号 然后它可以处理从远程 api 发出的每个项目 我期望当从目
  • 在 Firebase (Android) 中同时更新多个节点中的多个字段

    我正在尝试使用 Maps 和 Update Children 更新不同节点中的多个字段 但是 firebase 正在删除相应节点中的数据并添加数据 我希望更新数据并且以前的数据保持不变 有趣的是 该逻辑在更新同一节点中的 2 个字段时有效
  • 将页面特色图像添加到 foreach 循环

    我有一个 foreach 循环 它显示子页面标题 内容和 URL 的列表 但我似乎无法显示特色图像 这是我所拥有的
  • Python-替换字符串的每n次出现

    我从问题中提取了以下片段替换字符串中第 n 次出现的子字符串 https stackoverflow com questions 35091557 replace nth occurrence of substring in string
  • 无法加载模块 XML::LibXML 的“C:/strawberry/perl/site/lib/auto/XML/LibXML/LibXML.dll”

    我已经下载了草莓 PERL 并在 Winxp sp3 上使用 CGI Perl Apache 编写了一个应用程序 我使用的库之一 由其他人编写 使用 XML LibXML 当我加载页面时 它给出内部服务器错误 从 Apache 错误日志我可
  • Matlab内联函数与匿名函数

    在 MATLAB 中选择使用内联函数还是匿名函数是否有充分的理由 这个确切的问题已被提出并得到回答here http www mathworks com matlabcentral answers 7860 但答案对于 MATLAB 新手用
  • WPF 如何将 ListBox.ItemsSource 转换为 ObservableCollection<某些动态类型>

    我编写了一个允许对列表框重新排序的行为 为了正常工作 ListBox 的 ItemsSource 必须是 ObservableCollection 因此我可以调用 Move from to 方法 我的问题是 如何将 ListBox Item