如果有人可以向我解释依赖项属性DisplayMemberPath的工作原理,我在哪里徘徊?
我试图创建具有类似ComboBox的DisplayMemberPath之类的属性的Custom ItemsControl,换句话说,在设置ItemsSource后,我希望能够将属性指定为Display。
目前,如果我这样做:

 <cc:MyControl ... DisplayMemberPath="MyObjectDescription" ... >


(是的,我已经覆盖了DisplayMemberPath,这是重点。)

它显示项目列表,但每个项目都显示“ MyObjectDescription”,而不是该属性为ItemsSource中的每个对象保存的值。
我相信这是因为我在DisplayMemberPath属性的工作方式方面缺少一些东西。
谢谢大家:)

最佳答案

有两种类型的DisplayMemberPath。一种支持绑定,另一种必须在其中设置字符串值。就您的情况而言,我可以看到您希望实施第二个。为此,在您的字符串类型的自定义控件内创建一个属性,并将其命名为DisplayMemberPath。用自定义逻辑覆盖容器中的OnInitialized方法,在此方法中,您告诉容器通过将绑定的路径更改为在DisplayMemeberPath中指定的字符串值来操纵到DataContext的绑定路径。一旦所有控件完全初始化,但在即将呈现之前,WPF就会调用OnInitalized。希望对您有帮助。

关于c# - DisplayMemberPath行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18479467/

10-11 11:20