2011-01-27 35 views
2

我有一個組合框:如何在WPF組合框存儲隱藏的價值在selectionChanged方法使用

<ComboBox Name="Gen2Fis" ItemsSource="{Binding Path=Table}" SelectionChanged="Gen2Fis_SelectionChanged" DisplayMemberPath="LongName"> 

用於填充此組合框的查詢是:基於

Select ShortName, LongName from Table; 

從這個列表中選擇的項目我想用選定的項目調用另一個方法,但我需要使用ShortName(不顯示)而不是LongName(它是)。

我該怎麼做呢?我可以以某種方式隱藏名單中的短名?

我加載組合框方法:

public void LoadFINamesIntoList(string mainDB) 
    { 
     XiphosStr.ConnectString = mainDB; 
     dbConnection = new MyDatabaseConnection(XiphosStr.ConnectString); 
     DataSet ds = dbConnection.ExecuteQuery(Queries.getFIs); 

     Gen2Fis.DataContext = ds.Tables[0].DefaultView; 
    } 

我的選擇更改方法:

private void Gen2Fis_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     string gen2fi = (XiphosDB2.SelectedItem as ComboBoxItem).Content.ToString(); 
     Gen2Str.ConnectString = gen2fi; 
     DisplayGen2Users(); 
    } 

gen2fi將等於長的名字,但我需要的簡稱。

感謝您的任何幫助。

傑森

回答

1

使用從組合框SelectedValuePath並設置值路徑就像顯示部件

<ComboBox Name="Gen2Fis" ItemsSource="{Binding Path=Table}" SelectionChanged="Gen2Fis_SelectionChanged" DisplayMemberPath="LongName" SelectedValuePath="ShortName"> 

然後在SelectionChanged事件你就可以使用了selectedValue。

private void Gen2Fis_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     string gen2fi = ((ComboBox)sender).SelectedValue ; 
     Gen2Str.ConnectString = gen2fi; 
     DisplayGen2Users(); 
    } 
+0

謝謝,那正是我所需要的。 – Jason 2011-01-27 22:44:10