> SelectedItem
> SelectedValue
> SelectedValuePath
所有这些依赖属性都在Selector类中定义。我经常混淆SelectedItem与SelectedValue和SelectedValue与SelectedValuePath。
我想知道它们之间的区别,以及我们什么时候使用它们,特别是SelectedValue和SelectedValuePath。请用一些简单的例子解释它们的用法。
解决方法 他们的名字可能有点混乱:)。这里是一个总结:> SelectedItem属性返回您的列表绑定到的整个对象。所以说你已经将一个列表绑定到一个category对象的集合(每个category对象都有name和ID属性)。例如。 ObservableCollection。 SelectedItem属性将返回当前选择的category对象。但是,对于绑定目的,这并不总是你想要的,因为这只能让你绑定整个类对象到列表绑定到的属性,而不是该类对象上的单个属性的值(如其ID属性)。
>因此,我们有SelectedValuePath属性和SelectedValue属性作为一种替代的绑定手段(您使用它们彼此联合)。让我们假设你有一个Product对象,你的视图绑定到(包含Productname,Weight等东西的属性)。我们还假设您在该Product对象上有一个categoryID属性,并且您希望用户能够从类别列表中为产品选择一个类别。您需要将类别对象的ID属性分配给Product对象的categoryID属性。这是SelectedValuePath和SelectedValue属性的来源。你指定category对象的ID属性应该被赋值给Product对象的属性,列表使用SelectedValuePath =’ID’绑定到它,然后绑定SelectedValue属性到DataContext上的属性(即Product)。
下面的示例演示了这一点。我们有一个ComboBox绑定到一个类别列表(通过ItemsSource)。我们将产品上的categoryID属性绑定为所选值(使用SelectedValue属性)。我们通过SelectedValuePath属性将它与类的ID属性相关联。我们说的只是在ComboBox中显示name属性,使用displayMemberPath属性)。
<ComboBox ItemsSource="{Binding CategorIEs}" SelectedValue="{Binding categoryID,Mode=TwoWay}" SelectedValuePath="ID" displayMemberPath="name" />
这是一个有点混乱最初,但希望这使它有点清晰… 总结
以上是内存溢出为你收集整理的wpf – SelectedItem,SelectedValue和SelectedValuePath之间的差异全部内容,希望文章能够帮你解决wpf – SelectedItem,SelectedValue和SelectedValuePath之间的差异所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)