2012-05-25 46 views
0

我有一個是通過數據綁定填充到一個ObservableCollection你如何獲得第一列的字符串值在兩列項目在ListBox

<ListBox Height="198" HorizontalAlignment="Left" Margin="12,45,0,0" Name="listBox_users" VerticalAlignment="Top" Width="204" ItemsSource="{Binding}"> 
      <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding username}" Name="left" Width="50" /> 
        <TextBlock Text="{Binding real_name}" Name="right" Width="100" /> 
       </StackPanel> 
      </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

我想要得到的只是字符串值列表框任何項目被選擇的用戶名。通常在過去,我用一個複雜的索引系統來完成這個工作,但是必須有一種方法可以從listbox_users.Items或listbox_users.SelectedItem中完成。我不知道如何在數據綁定的情況下做到這一點,我還是很新的概念

回答

2

由於您使用數據綁定和設置ItemTemplate,該ListBox.SelectedItem將返回該項目的DataContext,而不是模板元素。我假設ItemsSource是某種類型的視圖模型的列表。這裏有一個例子,其中ItemsSource是ObservableCollection<UserViewModel>

UserViewModel selectedUser = listBox_user.SelectedItem as UserViewModel; 
string username = selectedUser.username; 
+0

這就是我所需要的,非常感謝你 – cost

相關問題