2012-06-12 77 views
1

我無法過濾在WPF形式下拉像在C#的形式..我怎麼能在WPF C#另一個下拉過濾器下拉菜單值?

我創建了一個列表,我的情況下拉和LoadUserControl()方法把它作爲項目源,如下圖所示。

public class FilterListItem 
    { 
    public string Filter { get; set; } 
    } 

    public LoadUserControl() 
    { 
    InitializeComponent(); 
    List<FilterListItem> FilterList = new List<FilterListItem>(); 
    FilterList.Add(new FilterListItem() { Filter = "Make" }); 
    FilterList.Add(new FilterListItem() { Filter = "Model" }); 
    FilterList.Add(new FilterListItem() { Filter = "Year" }); 
    myscenario.ItemsSource= FilterList; 
    myscenario.SelectedItem= "Model"; 
    } 

下面是代碼,我有腳本下拉按照從場景下拉列表中選擇過濾。

private void myscenario_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 

if (myscenarios.SelectedItem.ToString() == "Model") 
    { 
    Scriptlist.Add(script1); 
    Scriptlist.Add(script2); 
    break; 
    } 
else if (myscenarios.SelectedItem.ToString() == "Make") 
    { 
    Scriptlist.Add(script3); 
    Scriptlist.Add(script4); 
    break; 
    } 

else 
    { 
    Scenariolist.Add(sc5); 
    Scenariolist.Add(sc6); 
    } 
} 

當我執行該腳本,用戶界面只會默認值是模型,每當我從下拉式等價值,它仍然顯示所選擇的項目爲「模型」。

此外,當調試所選項目的從場景中的下拉列表值與在MessageBox,我收到此消息如下。

**MessageBox.Show(myscenarios.SelectedItem.ToString()); 

//我得到「Filterlistitem」的消息框,我只是選擇的選擇項,而不是**

所有我需要的是腳本下拉過濾器根據用戶的選擇場景下拉,就像我上面提到的那樣。

僅供參考,我並沒有把XAML UI只是爲了使問題更簡單。

任何幫助,將不勝感激。

感謝

seleniumlover

+0

如果刪除myscenario_SelectionChanged事件處理程序,您可以更改所選的項目? – Paparazzi

回答

2

看來,您使用的是List<T>爲您的下拉控制ItemsSource不更新當列表改變UI。使用ObservableCollections在集合更改時通知UI。

+0

謝謝你的回覆。我對WPF很陌生。您可以解釋如何使用ObservableCollections在集合更改時通知UI以上問題嗎? – seleniumlover

+0

而是一個'清單的'使用'的ObservableCollection '。 – evanb

相關問題