问题标签 [itemscontrol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
938 浏览

wpf - 在 ContextMenu.MenuItem.Click 事件处理程序中获取 ItemsControl 的可视底层 ItemTemplate?

首先看一下我的代码:

我想要,当用户右键单击 ListBox 中的单个 ListBoxItem 时,它应该被传递(或它的索引或任何查找 ContextMenu 弹出的项目的方法。

0 投票
3 回答
683 浏览

.net - 如何创建一个 ItemsControl 将每个“项目”呈现为折线上的一个点?

我对 MSDN 示例感到非常困惑。我发现的所有示例通常都围绕 StackPanel 中的文本项或类似简单的东西。

给定一个数字数组作为 ItemsSource -

ItemsControl 应该只处理这个:

如图所示,每个项目都需要转换为一个点——其中“x”值是项目在项目列表中的位置,“y”值是项目本身的解释数值。

如果一个 ItemsPanelTemplate 是绝对需要的,我想它会对单个 PolyLine 的布局产生最小的影响 - 一个简单的 Grid,也许没有任何明确的列或行定义。

但我不知道如何在这种情况下实现ItemsPanelTemplate OR ItemsPresenter OR ItemTemplate。

谁能指出我正确的方向?

0 投票
2 回答
887 浏览

wpf - WPF:如何在 ItemsControl 中使用两个不同的控件?

我有一个 WPF ItemsControl,它的 ItemsSource 绑定到 MVVM 中可观察的视图模型集合。ItemTemplate 设置为我想要的用户控件。但是,在某些情况下,我想要另一个控件而不是 XAML 中指定的控件。

我怎样才能轻松做到这一点?

0 投票
0 回答
627 浏览

wpf - 从 WPF 移植到 Silverlight - ItemsControl/ItemCollection

我正在将一个应用程序(其他人编写的)从 WPF 移植到 Silverlight。我有一个继承自 ItemsControl 的类。在部分代码中,我访问 ItemsControl.Items 属性(ItemCollection 类型)。但是,Silverlight 中缺少 WPF 中存在的一些方法/属性:

  • MoveCurrentToFirst()
  • 当前项目
  • 当前位置
  • GetItemAt()

这些方法/属性的 Silverlight 等价物是什么,或者在 Silverlight 中是否有完全不同的方法来解决这个问题?我的互联网搜索只返回 WPF 的信息,没有关于 Silverlight 的信息。

任何帮助表示赞赏。

0 投票
2 回答
18733 浏览

c# - 如何绑定列表到 ItemsControl?

在我的演示者中,我有这个属性:

我想用这样的 ItemsControl/DataTemplate 列出名称:

由于通用列表没有命名属性,如何在我的 Binding 语句中引用该值?

0 投票
1 回答
2361 浏览

wpf - WPF:ItemsControl 数据模板作为用户控件的问题

这工作正常:

但是,我想使用用户控件来代替堆栈面板,其中有两个 TextBlocks,使用如下:

但是,有了这个和一百万种其他语法,NameView 什么也没有显示,但它在 ItemsControl 之外的单独测试中工作正常,具有显式设置(依赖)属性 - 例如

我几乎找不到任何这样的例子,并且需要知道如何指定用户控件的属性——或者用户控件如何“接收”单个项目类型(一个人)?使用什么语法?我需要指定数据类型吗?ItemsControl 是否会导致问题,或者是否应该使用任何类似的控件,例如 ListBox?我可以设计它以便用户控件获取整个 Person 对象吗?我在用户控件中需要哪些依赖属性?简而言之,如何将数据获取到用户控件中?!实际涉及的业务类型会稍微复杂一些,涉及用户控件中的一些逻辑,因此我希望使用用户控件。

非常感谢您对此的任何指示 - TIA

0 投票
2 回答
1908 浏览

wpf - WPF ItemsControl - ViewModel 上的命令未从 ItemsControl 中触发

我正在使用 MV-VM 并在我的 ViewModel 上有一个名为“EntitySelectedCommand”的命令。

我试图让 ItemsControl 中的所有项目来触发这个命令,但是它不起作用。

我认为这是因为每个项目的“数据上下文”都是项目绑定到的单个对象,而不是 ViewModel?

谁能指出我正确的方向?

干杯,

安迪

0 投票
2 回答
9626 浏览

wpf - ItemsControl 内 DataTemplate 中的 WPF UserControl - 如何绑定到 ItemsSource 的父级

主题行真的说明了一切!我有一个用户控件,可以成功地绑定到一个 Fullname 对象——也就是说,它可以正常工作。

我现在需要显示这些列表,并且再次,当控件位于 ItemsControl.Template 中的 DataTemplate 中时,这可以正常工作。

但是,该控件有一个属性 (InEditMode),它不是 Fullname 对象的属性,而是具有通过 ItemsSource 绑定 ItemsControl 的 FullnameList 属性的对象的属性。当控件不在列表中并且绑定到名为 ParentInEditMode 和 ParentFullname 的父兄弟属性时,此 InEditMode 属性可以正常工作。

问题是 - 当控件是 ItemsControl 时,需要什么样式的绑定表达式来“获取”父对象的编辑模式属性?

或者,我应该重新设计 Fullname 对象以包含 EditMode 属性吗?

提前谢谢了!

更新:

项目(即绑定到 ItemsControl 的集合中的项目)没有这样的属性。代码很简单:

整个父级(窗口的视图模型)具有以下属性:

  • 全名列表

  • ParentInEditMode

  • 全名(用于测试 NameView 的单个项目,它在任何列表控件之外与此 xaml 完美配合使用:

我想将编辑模式应用于整个集合 - 使该标志成为 Fullname 的一部分似乎不对!?

0 投票
2 回答
7194 浏览

c# - 如何在 WPF/C# 中创建自定义 MultiSelector/ItemsControl

我正在尝试在 C#/WPF 中创建图表应用程序。我想要的有点类似于 Microsoft Visio,尽管我不想克隆它。我在编码时写了这个问题,只是把我遇到的所有问题都放进去,以防有人发现它有用。也许我一直在想太多,但我觉得我可以扔在我的键盘上并生成更好的代码,所以请随时就你捕捉到的每个细节提供任何建议(不包括语法:-))

简而言之:
为什么所有项目都位于(0,0)?

代码:

好的,所以想法是 Diagram : ItemsControl将其项目放置在 Canvas 面板上 Item DiagramItem.Location 中定义的位置。IOW 当我更改 DiagramItem 中的 X 属性时,Diagram 会在 x 轴上移动项目。

注意: MultiSelector 是从 ItemsControl 和 Selector 派生的,只在这里使用,因为我需要显示的项目是可选择的。


请注意,如果可能,我不希望使用 xaml。


长话短说:
用户看到的图表实例具有以下要求:

  1. 有多个图表项。
  2. 用户可以选择多个图表项。
  3. DiagramItems 可以在图表上的任何位置调整大小、旋转和拖动。
  4. 可以使用键盘在 DiagramItems 之间导航。

我基本上有两个甚至三个与这个问题相关的课程。

  • 图表扩展了 System.Windows.Controls.Primitives。MultiSelector:选择器:ItemsControl
  • DiagramItem扩展了ContentControl或其他一些 Control

Diagram.ItemsPanel 又名显示项目的可视面板应该是一个支持绝对定位的面板,如Canvas

我应该如何实现从 MultiSelector 派生的类,您可以指出哪些资源与此问题相关?

在实现自定义 MultiSelector / ItemsControl 时必须考虑什么?


资源:

我发现与我的问题相关的资源很少,但是我又不确定我应该寻找什么。我已经使用 Reflector 阅读了 ListBox 和 ListBoxItem 的源代码,但没有发现它很有用。

其他资源:

0 投票
2 回答
9131 浏览

.net - 在两列中显示项目控件中的项目(WPF)

我有一个绑定到对象集合的项目控件。该对象有两个属性(名称、值),我分别在文本块和文本框中显示。该列表很长,我想在两列中显示它。所以我的问题是,有什么方法可以让 Itemscontrol 在两列中显示其项目?

PS:集合是在运行时填充的,我不知道我要展示多少项目!