gpt4 book ai didi

wpf - WPF 设计器中的字段选择 - 没有下拉菜单?

转载 作者:行者123 更新时间:2023-12-04 12:49:28 25 4
gpt4 key购买 nike

来自 WinForms 背景,看到 ItemsControl 之类的大多数(如果不是全部)与字段相关的属性,我有点惊讶。 WPF 中的 s 缺少用于选择字段的任何类型的下拉列表。

例如,当使用 ComboBox , 如果我绑定(bind) ItemsSource到设计器中我的 ViewModel 上的强类型集合,DisplayMemberPathValueMemberPath属性要求我手动输入相应字段的名称。我以前的 WinForms 经验是,当绑定(bind)到强类型列表(特别是实现 ITypedList 的源)时,我会得到一个可用字段的下拉列表,这样就不会对字段名称进行粗略的处理。

我在这里做错了什么,还是这只是 WPF 中没有的东西?

编辑

我知道这个功能是由 ITypedList 提供的。 WinForms 中的界面,但我的理解是 System.ComponentModel WPF 中未使用绑定(bind)方法(PropertyDescriptor s、ITypedListIBindingListIListSource)。数据网格之类的东西似乎在获取字段列表以创建列时没有问题,所以我只是好奇这些旨在表示属性名称的属性是否(和/或为什么)不提供相同级别的功能。

最佳答案

在 WPF 属性中,如 DisplayMemberPathValueMemberPath不仅仅是属性 - 一个例子可能是:

<ComboBox
DisplayMemberPath="Addresses[0].Line1"
ValueMemberPath="Address[0].Id"
SelectedValue="{Binding Path=FavoriteAddressId}"
...
/>

如果设计器属性只允许您从属性列表中进行选择,那么您将错过一些非常有用的功能。但是你是对的,除了能够输入之外,提供一个列表会很有用。

在 WPF 的绑定(bind)系统(非常动态)和团队对工具的愿景(需要一定的刚性)之间一直存在权力斗争。这是可能落入差距的案例之一。

编辑: PropertyDescriptors , IBindingList WPF 中也使用了 Windows 窗体绑定(bind)的其他一些组件 - 例如,我的 MicroModels库依赖于 PropertyDescriptors 工作,并且是为 WPF 构建的。然而,Silverlight 并不支持其中的许多。

关于wpf - WPF 设计器中的字段选择 - 没有下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com