2016-04-22 14 views
0

リストボックス内の選択したアイテムから値を取得するにはどうすればよいですか?リストボックスから選択したアイテムを取得する

私はデータバインドされたリストボックスを持っている:

移入するために、このDataTemplateのを使用しています
<ListBox x:Name="EventsListBox" 
     ItemsSource="{Binding}" 
     SelectedValuePath="idevents" 
     ItemTemplate="{DynamicResource DataTemplate2}" 
     /> 

<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> 

は、どのように私は「eventnameに」の値を取得し、ここではラベルに文字列として設定します。

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; 

これを実行するより良い方法は、バインディング更新をプロパティに設定することです。この方法では、すべてが常にあなたがSelectedEventNameは、リストボックスがバインドされているのviewmodel上の財産であることに注意すべきであるバインディング

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

</ListBox> 

で更新されます。

関連する問題