我正在尝试在 WPF 中实现可视化表单设计器。我有一个画布,用户可以在其中拖放一些控件(文本框、文本块、组合框、复选框、图像、按钮)。到现在为止还挺好。现在我正在尝试实现一个组合框,其中列出了用户放在画布上的所有控件(就像 VS 2008 一样)。
组合框显示控件的名称属性。它适用于除按钮和复选框之外的所有控件,我不知道为什么。Combobox 绑定到 ObservableCollection,并且 Combobox 的 Item Collection 填充正确,但是当我选择 Button 或 Checkbox 时,名称不显示为 SelectedItem。所以这是我的绑定:
<ComboBox Name="comboBoxCurrentControls" IsEditable="false"
ItemsSource="{Binding AllFormControls}" DisplayMemberPath="Name"
SelectedValuePath="Name"
SelectedItem="{Binding Path=SelectedCtl, Mode=TwoWay}"
当您简单ObservableCollection<T>
地使用 Buttons 填写 Codebehind 并在其上绑定一个 Combobox 时,您可以重现该问题。当您选择它时,组合框不会将按钮的名称显示为 SelectedItem。有人可以向我解释这种行为或告诉我解决方法吗!?
提前致谢
克里斯
Ps:我也试过用ObservableCollection<FrameworkElement>
,但是没有用。