如何在“绑定时”获取 ListBox 中项目的 ListBoxItem

2023-11-30

我有一个带有 Foo 对象的 ListBox,并且根据一些事件我禁用/启用 ListBox 中的 ListBoxItems。使用 ListBox.Items 属性,我找到 Foo 对象,根据我的理解,我需要使用以下函数来获取 Foo 的 ListBoxItem 容器。正确的?

foreach (var item in Items)
{
    var lbi = ItemContainerGenerator.ContainerFromItem(foo) as ListBoxItem;
    // do something
}

实际上我有一个自定义控件 FilteringListBox 它继承 ListBox 并向其添加一个额外的属性。上面的代码位于自定义控件的代码后面,并且在创建 FilteringListBox 后工作得很好。然而,我的问题是,当某些属性被绑定时,我尝试这样做。我有一个属性 FilteringCollection 和一个在绑定时触发的 PropertyCallback 。在此回调中,我将存储 FilteringCollection,但我还将执行初始过滤 - 运行集合集合并禁用任何表示 FilteringCollection 中的 Foo 的 ListBoxItem。

这就是我遇到问题的地方。我找到了所有 Foos,因此我验证了 ItemsSource 是否已设置,但执行 ItemContainerGenerator.ContainerFromItem 我得到 null。就像 ListBoxItems 尚未创建一样。不是吗?这是我的绑定:

<custom:FilteringListBox ItemsSource="{Binding AvailableFoos}" FilteringCollection="{Binding AlreadyIncludedFoos}"></custom:FilteringListBox>

所以;或者:如何在“绑定时间”获取 ListBoxItems?或者——如果我不能;是否有一些我可以重写的事件告诉我 ListBox 已完成创建 ListBoxItems?尝试了初始化但没有运气......


实际上,更好的解决方案似乎是使用项目容器生成器。在创建时连接事件处理程序:

ItemContainerGenerator.StatusChanged += ItemContainerGenerator_StatusChanged;

并使事件处理程序执行需要执行的操作:

protected void ItemContainerGenerator_StatusChanged(object sender, System.EventArgs e)
{
    if (ItemContainerGenerator.Status == GeneratorStatus.ContainersGenerated)
        EvaluateInitialElements(); 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在“绑定时”获取 ListBox 中项目的 ListBoxItem 的相关文章

  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • OxyPlot WPF 不适用于按钮单击

    我在使用 OxyPlot 时遇到了一些问题 但无法通过他们的文档或其他搜索来解决 我正在开发一个 wpf 应用程序 它允许用户通过按钮单击事件打开 csv 然后执行一些数学运算并报告一些有用的信息 我想绘制一些生成的数据 因此使用 OxyP
  • 是否可以修改 PDF 表单字段名称?

    情况是这样的 我有一个 PDF 其中包含自动生成的 pdf 表单字段名称 问题是这些名称不太用户友好 它们看起来像 topmostSubform 0 Page1 0 Website Address 0 我希望能够更改它们 使它们类似于 We
  • 在C#中的某个单词之后/之前过滤字符串中的值

    我有很长的字符串 它们是 IMAP 请求的响应 我想从中提取一些值 它通常的格式类似于 x someword 或 someword x 如何获取某个单词 已知 的x 它可以超过一位数字 响应的每一 行 如下所示 x someword r n
  • .Net 中是否有与 HTML 等效的 XmlReader?

    我用过Html敏捷包 http html agility pack net z codeplex过去在 Net 中解析 HTML 但我不喜欢它只使用 DOM 模型 在大型文档和 或具有大量嵌套的文档上 可能会遇到堆栈溢出或内存不足异常 另外
  • 如何更改 OxyPlot Y 轴字符串格式?

    谁能告诉我如何更改 Y 轴字符串格式 我想向 Y 轴百分比添加百分号 我正在使用 OxyPlot 在 wpf 中生成图表 这是我的尝试 但它不起作用 Func
  • 应用服务中的内存利用率是否可​​以提高

    我有一个相当简单的 Web 应用程序在 Azure 的 B1 服务计划中的应用服务计划中运行 该计划提供 1 个 CPU 和 1 75GB RAM CPU 使用率永远不会超过 5 左右 内存使用率永远不会低于 52 我确实停止了计划中唯一运
  • 将 Xml 反序列化为对象时出错 - xmlns='' 不是预期的

    我在尝试反序列化某些 XML 时遇到了真正的麻烦 希望有人可以提供一些帮助 我读过很多类似的帖子 但我无法解决这个问题 我正在尝试反序列化 XML
  • WPF Datagrid 循环/选择具有特定属性的单元格

    全新的 WPF 对 WinForms 非常熟悉 这可能会让过渡变得更加困难 我正在尝试将旧 WinForms 项目中的一些功能移植到 WPF 中作为学习体验 目标是在 DataGrid 中查找与 TextBox 中的字符串匹配的单元格值 我
  • 删除 TableLayoutPanel 中的特定行

    我有 TableLayoutPanel 我以编程方式添加行 用户基本上选择一个属性 然后与一些控件一起显示在表中 我想我在这里有一个一般性的理解问题 我会尽力解释它 每行中的控件之一是 删除 按钮 该按钮应该删除它所在的行 我所做的是将事件
  • 实体框架 - 绑定 WPF 树视图控件

    在服务类别表中 ParentCategoryId 是 ServiceCategoryId 它是父类别 我的类别可以有第 n 级层次结构 因此我需要使用树视图控件来呈现它 我怎样才能做到这一点 Thanks 你可以使用分层数据模板 http
  • 如何使用AutoMapper按照类中定义的顺序映射对象?

    给定这两个对象 我使用非常不同的对象来更好地阐明 public class Car public string Brand get set public int Speed get set public class Apple public
  • 检查 DBNull 会引发 StrongTypingException

    我正在使用数据集从数据库中提取数据 一行中的一个字段是NULL 我知道这个 但是 以下 vb net 代码会抛出StrongTypingException 在数据集设计器中自动生成的 get SomeField 方法中 If Not IsD
  • 为什么抽象类应该实现抽象基类的抽象方法?

    在下面的示例中 该类Derived实现抽象方法method从课堂上Main 但我想不出在抽象中填写方法体的理由Derived类的实现 当然 我应该只在实际类中实现抽象方法 那么我怎样才能避免这样做呢 我还可以做些什么 abstract cl
  • 如何转义 HTML 字符?在.NET中-->“

    如何在 NET 中转义 HTML 字符 我正在从 json 字符串中获取 html 并在标题中得到 amp quot more text 看起来我需要做两次才能得到 amp quot 成为 quot 那么它就是一个 如何转义 NET 中的所
  • 将复选框添加到 UniformGrid

    我正在尝试将复选框动态添加到 wpf 中的统一网格中 但看起来网格没有为它们分配足够的空间 所以它们都有点互相重叠 这就是我将它们添加到后面的代码中的方法 foreach string folder in subfolders PathCh
  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编

随机推荐

  • Spark SQL:通过“order by”改善缓存内存占用

    我有两种情况23 GB分区的parquet数据并阅读了一些columns caching它预先触发一系列后续查询 Setup 集群 12 节点 EMR 火花版本 1 6 Spark 配置 默认 运行配置 两种情况相同 Case 1 val
  • 如何在 Swift 中使用下标和上标?

    I want my UILabel to display text in following manner 6 022 1023 What functions does Swift have for subscript and supers
  • 使用 requests 库绕过侵入性 cookie 语句

    我正在尝试使用以下方式抓取网站requests图书馆 但是 我尝试访问的特定网站 http www vi nl matchcenter vandaag shtml 有一个非常侵入性的cookie声明 我尝试按如下方式访问该网站 from b
  • 检测图像是否嵌入

    我开始编写自己的图像主机 但我有一个小问题 如果您通过浏览器直接查看链接 例如 Domain com img 123 我想显示一个 HTML 页面 如果您通过以下方式嵌入链接 我想显示一个图像 img src Domain com img
  • 在 Windows XP 中使用 C# 在登录屏幕上显示窗口

    我正在尝试使用 C 创建一个服务 该服务启动一个可以显示在 Windows XP 登录屏幕上的进程 我发现了一些用 C 执行此操作的代码 C 代码用于创建另一个进程的服务 其中 STARTUPINFO lpDesktop 设置为 WinSt
  • 如何在我的应用程序中列出 iPhone 钥匙串中的证书?

    我正在创建一个 iPhone 应用程序 我们希望在其中使用 x 509 证书进行客户端身份验证 用户可以从电子邮件安装他们的证书 它显示在 设置 gt 常规 gt 配置文件 下 但是我无法从我的应用程序中读取这些证书 我想提供一个类似于 J
  • C大调帕斯卡三角形

    我是一名计算机工程专业的学生 下学期我将开始 C 课程 因此 为了让自己做好一点准备 我开始自学 C 语言 并偶然发现了一个有趣的任务 乍一看 它是为我设计的 不是一个非常高级的水平 任务是编写一个程序来计算给定位置的值帕斯卡三角形 计算它
  • C#中如何设置系统环境变量?

    我试图在我的应用程序中设置系统环境变量 但得到一个SecurityException 我测试了在谷歌中找到的所有内容 但没有成功 这是我的代码 注意 我是我的电脑的管理员并以管理员身份运行 VS2012 尝试1 new Environmen
  • 子类/继承标准容器?

    我经常在 Stack Overflow 上读到这样的说法 就我个人而言 我认为这没有任何问题 除非我以多态方式使用它 即我必须使用的地方virtual析构函数 如果我想扩展 添加标准容器的功能 那么有什么比继承更好的方法呢 将这些容器包装在
  • 属性复制在Cocoa框架中意味着什么?(如UITabBar的items属性)

    在 Tab Bar h 中 正确签名的副本 property nonatomic copy NSArray items 获取 设置可见 这是一个数组 复制 是什么意思 复制 NSArray 容器 obj 复制 NSArray 包含的每个 o
  • 从 DataGridView 获取 DataTable 并尊重过滤器和排序

    我有一个System Windows Forms DataGridView充满了数据 我正在使用这样的代码 System Data DataTable dataTable1 System Windows Forms BindingSourc
  • 在 Outlook 中粘贴表格之前写入 - Excel VBA

    我使用以下代码将表格粘贴到 Outlook 上的新电子邮件中 Copy range of interest Dim r As Range Set r Range B2 D5 r Copy Open a new mail item Dim o
  • 选项卡中的图标未显示

    我从 Android 开始 当我尝试使用图标和文本制作 TabHost 时 只有文本可见 如果我将文本保留为空白 则可以看到图标 我想在屏幕上看到两者 有人可以给我建议吗 public void onCreate Bundle savedI
  • 替换除最后一个字符之外的所有字符

    假设我有一串a b c d 如何编写一个方法将该字符串转换为abc d 或者有没有可用的实现方法 到目前为止我已经尝试过的 int dotPlacing propertyName lastIndexOf 12 String modStrin
  • Databricks 上的 Shap 值绘图错误,但在本地工作

    我想做一个简单的形状分析并绘制 shap force plot 我注意到它在 ipynb 文件中本地工作没有任何问题 但在 Databricks 上失败并显示以下错误消息 Visualization omitted Javascript l
  • 如何在 Google appengine 中加密 ZipOutputStream?

    我正在使用 Java 在 GAE 中创建 zip 文件 并使用 ZipOutputStream 将它们上传到 Google Cloud Storage 但是我需要加密文件 但我不知道如何加密 有谁知道如何在 Google Appengine
  • Firefox 处理 xxx.submit(),Safari 不处理...可以做什么?

    当用户从菜单中选择 释放鼠标 选项之一时 我试图使下拉菜单发布表单 此代码在 FF 中运行良好 但 Safari 由于某种原因不提交表单 我使用 jquery 重新编写了代码 以查看 jquery 的 submit 实现是否可以更好地处理浏
  • C# Alpha Blend 透明 PictureBox

    我的表单上显示了一个网络摄像头提要 并且想在其上绘图 我本来打算使用图片框来完成此操作 但我发现 PictureBox 不支持真正的透明度 而只支持其所在表单的颜色 它也不支持字母混合 这就是我希望它显示的方式 类似于表单的显示方式 有谁知
  • CLLocationManager requestWhenInUseAuthorization() 不起作用

    我尝试在我的 iOS 应用程序中使用位置服务 但出于某种原因requestWhenInUseAuthorization不管用 当用户第一次使用该应用程序时 会像平常一样出现提示请求权限 但当您第二次打开该应用程序时 由于某种原因didCha
  • 如何在“绑定时”获取 ListBox 中项目的 ListBoxItem

    我有一个带有 Foo 对象的 ListBox 并且根据一些事件我禁用 启用 ListBox 中的 ListBoxItems 使用 ListBox Items 属性 我找到 Foo 对象 根据我的理解 我需要使用以下函数来获取 Foo 的 L