从列表框中检索所选项目

时间:2016-04-22 12:40:57

标签: wpf vb.net

如何从列表框中的所选项目中检索值。

我有一个数据绑定列表框:

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

如何获取'eventname'值并将其设置为此处标签的字符串;

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

End Sub

1 个答案:

答案 0 :(得分:0)

一般来说,我尝试通过绑定来做事,因为它们会自动更新。

在Code Behind中,您可以通过SelectedValue属性访问项目的值。

String value = EventsListBox.SelectedValue;

更好的方法是使绑定更新属性。这样一切都将通过绑定更新

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

</ListBox>

您应该注意,SelectedEventName是列表框绑定到的viewmodel上的属性。