2010-04-06 4 views
3

WPF ComboBox에 cbFileSize라는 이름이 있습니다. 그래서 같은 값을 선택 얻을려고 : "16 System.Windows.Control.ComboBoxItem"wpf : 콤보 상자 값 받기

string tmp = cbFileSize.SelectedValue.ToString(); 
MessageBox.Show(tmp); 

그러나 TMP로 설정됩니다.

그냥 "16"값을 얻기 위해 사용해야하는 함수는 무엇입니까?

답변

4

문자열 tmp = (cbFileSize.SelectedValue as ComboBoxItem) .Content.ToString();

또는

문자열 TMP = (ComboBoxItem 같은 cbFileSize.SelectedItem) .Content.ToString();

편집 (추가 정보) : 나중에 콤보 상자 값 목록을 문자열 모음에 바인딩하면 자신의 방식대로 수행 할 수 있습니다. 그러나 selectedItem가, 그래서 당신은 당신의 콤보 상자에 ComboBoxItems의 컬렉션을 배치하거나 selectedValue는 콤보 상자 항목 될 것입니다 :

<ComboBox x:Name="comboBox"> 
    <ComboBoxItem>15</ComboBoxItem> 
    <ComboBoxItem>16</ComboBoxItem> 
    <ComboBoxItem>17</ComboBoxItem> 
</ComboBox> 

난 당신이 위의 같은 일을 가정합니다. 선택한 항목으로 ComboBoxItem을 가져 오므로이를 캐스팅하고 내용 (숫자 값)을 가져와야합니다.

다시 제안 된 솔루션은 위의 설정에서 작동하지만 나중에 ComboBox 항목을 수동으로 ComboBox에 배치하려는 원하는 유형 (문자열 또는 int)에 값을 바인딩 할 수 있습니다.

+0

이 아니어야합니다 : string tmp = (cbFileSize.SelectedItem as ComboBoxItem) .Content.ToString(); ?? – spong

+0

내가 작성한 가정을 포함하도록 내 게시물을 편집했습니다. SelectedItem 또는 SelectedValue는 해당 가정하에 작동합니다. – Scott

0

는 단순히 뒤에 코드에서 그런 다음 comboboxitem

<ComboBoxItem Content="This Value" Tag="This Value"/> 

의 태그 방법/속성을 사용할 수 있습니다 :

GetValue=ComboBoxName.SelectedItem.Tag.ToString() 

얻기 값 대신 "System.Windows의"이 값 "입니다 .Controls.ComboBoxItem :이 값은 "