- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下之间有什么区别:
所有这些依赖属性都在 Selector 中定义。类(class)。我经常将 SelectedItem
与 SelectedValue
混淆,将 SelectedValue
与 SelectedValuePath
混淆。
我想知道它们之间的区别,以及我们什么时候使用它们,特别是 SelectedValue
和 SelectedValuePath
。请用一些简单的例子解释它们的用途。
最佳答案
他们的名字可能有点令人困惑:)。总结如下:
SelectedItem 属性返回列表绑定(bind)到的整个对象。假设您已将列表绑定(bind)到 Category
对象的集合(每个 Category 对象都具有 Name 和 ID 属性)。例如。 ObservableCollection<Category>
。 SelectedItem
属性将返回当前选定的 Category
对象。然而,出于绑定(bind)目的,这并不总是您想要的,因为这只能使您将整个 Category 对象绑定(bind)到列表绑定(bind)到的属性,而不是该 Category 对象上的单个属性的值(例如其 ID
属性)。
因此,我们将 SelectedValuePath 属性和 SelectedValue 属性作为另一种绑定(bind)方式(将它们结合使用)。假设您有一个 Product
对象,您的 View 绑定(bind)到该对象(具有 ProductName、Weight 等属性)。还假设您在该 Product 对象上有一个 CategoryID
属性,并且您希望用户能够从类别列表中选择产品的类别。您需要将 Category 对象的 ID 属性分配给 Product 对象的 CategoryID
属性。这就是 SelectedValuePath
和 SelectedValue
属性的用武之地。您指定应使用 SelectedValuePath='ID'
将 Category 对象上的 ID 属性分配给列表绑定(bind)到的 Product 对象上的属性,然后将 SelectedValue
属性绑定(bind)到该属性在 DataContext(即产品)上。
下面的示例演示了这一点。我们有一个绑定(bind)到类别列表的组合框(通过 ItemsSource)。我们将 Product 上的 CategoryID 属性绑定(bind)为选定值(使用 SelectedValue 属性)。我们通过 SelectedValuePath 属性将其与类别的 ID 属性相关联。我们说的是仅在 ComboBox 中显示 Name 属性以及 DisplayMemberPath 属性)。
<ComboBox ItemsSource="{Binding Categories}"
SelectedValue="{Binding CategoryID, Mode=TwoWay}"
SelectedValuePath="ID"
DisplayMemberPath="Name" />
public class Category
{
public int ID { get; set; }
public string Name { get; set; }
}
public class Product
{
public int CategoryID { get; set; }
}
一开始有点令人困惑,但希望这能让它变得更清晰......:)
克里斯
关于wpf - SelectedItem、SelectedValue 和 SelectedValuePath 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4902039/
在我们的应用程序中,我们有一个非常大的数据集,用作 ComboBox 列表等的数据字典。这些数据是静态缓存的,并与 2 个变量绑定(bind),所以我认为编写一个派生自的控件是明智的ComboBox
我正在尝试将 Dictionary 绑定(bind)到 WPF 应用程序中的 ComboBox。 SortedDictionary result = new SortedDictionary(); (
以下之间有什么区别: SelectedItem SelectedValue SelectedValuePath 所有这些依赖属性都在 Selector 中定义。类(class)。我经常将 Select
如何使用 Linq To Sql 将值和键绑定(bind)到列表框? 我正在使用 linq to sql 类填充列表框,这是 WPF: 下面显示了 FullName 而不是 Case_Number:
我正在努力寻找为什么我的 SelectedValuePath 没有导致我的组合框将 double 值传递到我的 View 模型属性 DelayLength。当我在执行期间更改组合框选择时,组合框变为红
我一直在努力解决这些组合框属性 显示成员路径 选定值 选定的值路径 我正在构建一个主详细信息表单。 组合框中充满了客户 用户在组合中选择客户 所有文本框 EG 均正确填写 我遇到的问题我已经让它工作了
我确实在数据绑定(bind)和 MVVM 方法论方面苦苦挣扎,尽管我喜欢这个概念,但我只是在苦苦挣扎。我为它创建了一个 WPF,它有多个组合框和一个按钮。第一个组合框将列出数据库实例名称。单击按钮后将
调试一个奇怪的 NullRefException 我看到下图: 所以当代码指的是.SelectedValue它崩溃了。 我无法理解 .SelectedItem可以设置,但是.SelectedValue
我是一名优秀的程序员,十分优秀!