2016-04-22 51 views
0

如何從列表框中的選定項目檢索值。從列表框中檢索選定的項目

我有一個數據綁定列表框:

<ListBox x:Name="EventsListBox" 
     ItemsSource="{Binding}" 
     SelectedValuePath="idevents" 
     ItemTemplate="{DynamicResource DataTemplate2}" 
     /> 

使用這個DataTemplate中來填充:

<DataTemplate x:Key="DataTemplate2"> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="60"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 

      <StackPanel Grid.Column="0" Margin="0,5,5,5" Grid.ColumnSpan="2"> 
       <DockPanel TextBlock.FontWeight="Bold" > 
        <TextBlock Text="{Binding Path=eventname, FallbackValue=Manchester}" HorizontalAlignment="Center"/> 

       </DockPanel> 


       <TextBlock Text="{Binding Path=realchannelname, FallbackValue=Channel}" FontStyle="Italic" HorizontalAlignment="Left" /> 
       <TextBlock Text="{Binding Path=datetime, FallbackValue=datetime}" HorizontalAlignment="Left" /> 
      </StackPanel> 
     </Grid> 
    </DataTemplate> 

我怎麼會得到「事件名稱」值,並將其設置爲一個字符串,在這裏的標籤;

Private Sub EventsListBox_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles EventsListBox.SelectionChanged 

End Sub 
+2

您可以使用SelectedItem屬性! – Amine

+0

好的,我已經想通了。 'MessageBox.Show(DirectCast(EventsListBox.SelectedItem,DataRowView).Item(「eventname」))' 這樣做 – Psycho

回答

0

一般來說,我嘗試通過綁定來做事情,因爲它們會自動更新。

在代碼後面,您可以通過SelectedValue屬性訪問該項目的值。

String value = EventsListBox.SelectedValue; 

這樣做的更好方法是讓綁定更新一個屬性。這樣,一切都將永遠與綁定

<ListBox x:Name="EventsListBox" 
     SelectedValue="{Binding SelectedEventName} > 

</ListBox> 

你應該注意的是,SelectedEventName是對列表框綁定到視圖模型的屬性更新。