我想在WPF中實現一個可視化的表單設計器。我有一個Canvas,用戶可以拖放一些控件(Textbox,Textblock,Combobox,Checkbox,Image,Button)。到現在爲止還挺好。現在我試圖實現一個組合框,其中列出了用戶放置在畫布上的所有控件(如VS 2008所做的)。列表按鈕控件在組合框WPF C#4.0
組合框顯示控件的Name屬性。它適用於除按鈕和複選框以外的所有控件,我無法弄清楚原因。組合框綁定到一個ObservableCollection並且組合框的Item集合填充正確,但是當我選擇一個按鈕或複選框時,名稱不會顯示爲SelectedItem。所以,這裏是我的綁定:
<ComboBox Name="comboBoxCurrentControls" IsEditable="false"
ItemsSource="{Binding AllFormControls}" DisplayMemberPath="Name"
SelectedValuePath="Name"
SelectedItem="{Binding Path=SelectedCtl, Mode=TwoWay}"
您可以重現該問題,當你簡單填寫代碼隱藏一個ObservableCollection<T>
按鈕和在其綁定的組合框。當您選擇它時,Combobox將不會顯示Button的名稱爲SelectedItem。 有人可以解釋我這種行爲或告訴我一個解決方法!?
在此先感謝
克里斯
P.S:我還試圖用ObservableCollection<FrameworkElement>
,但它並沒有幫助。
什麼顯示的不是名稱:隨着一點點的谷歌搜索,我碰到這個來了? – Richard
什麼都沒有。它只是空的....但是當comboBox被展開時,按鈕/複選框的名稱在列表中。 –
你能提供設置SelectedCtl的代碼嗎? –