我已经在一段时间内对抗这个问题了.我不确定为什么它不起作用.我对这整个WPF业务还很陌生.
这是我的组合框的XAML
这是填充ComboBox的内容(myAssembly是我用可能类型列表创建的类)
cmoBox.ItemsSource = myAssembly.PossibleTypes;
我将DataContext设置在后面的代码中的ComboBox的父元素中,如下所示:
groupBox.DataContext = listBox.SelectedItem;
我希望绑定从组合框中选择正确的"可能类型".它没有选择任何东西.我尝试过SelectedValue和SelectedItem.当我将ComboBox的DisplayMemberPath更改为其他属性时,它更改了显示的内容,因此我知道它并未完全破坏.
有任何想法吗???
您也可以在xaml而不是代码隐藏中设置绑定(我们尽可能避免在我们的xaml页面中隐藏代码).我假设myAssembly是控件代码隐藏的属性,是MyAssembly类的一个实例......
它可能只是个人偏好,但我认为在xaml中使用数据绑定是更好的做法,因为它可以更容易地查看每个控件绑定的内容,而无需通过代码隐藏.此外,如果要从代码中引用ComboBox,则应在xaml中为其指定x:Name属性,而不仅仅是Name.
在XAML中,set ItemsSource="{Binding}"
和(在后面的代码中)设置DataContext
为myAssembly.PossibleTypes
.