我的問題是ComboBox
未顯示存儲在其綁定列表中的值。在DropDownOpened事件上設置的WPF組合框綁定列表
下面是我在做什麼:
WPF:
<ComboBox ItemsSource="{Binding Devices}"
DropDownOpened="deviceSelector_DropDownOpened"/>
注意,我Window
的DataContext
爲{Binding RelativeSource={RelativeSource Self}}
。
C#代碼隱藏:
public List<String> Devices { get; set; }
private void deviceSelector_DropDownOpened(object sender, EventArgs e)
{
// the actual population of the list is occuring in another method
// as a result of a database query. I've confirmed that this query is
// working properly and Devices is being populated.
var dev = new List<String>();
dev.Add("Device 1");
dev.Add("Device 2");
Devices = dev;
}
我曾嘗試與ObservableCollection
代替List
這樣做,我已經使用PropertyChangedEventHandler
也試過。這些方法都不適用於我。
任何想法爲什麼我的項目沒有被顯示,當我點擊下拉菜單?
既然你這樣做是在後面的代碼呢,爲什麼不直接設置'ComboBox.ItemsSource'? –
@AbeHeidebrecht試過了,它解決了我的問題!不知道爲什麼在WPF中設置ItemsSource不起作用,但請注意解釋嗎? –
我添加了一個答案TR Ÿ幫助解釋這一點。 –