C# ListBox.SelectedItem

C# ListBox.SelectedItem,c#,xaml,C#,Xaml,我有一个列表框,其中的项目填充了文本框es。从列表框中进行选择时,如何识别所选的文本字符串。下面是我的列表框的XAML代码: <StackPanel x:Name="InputPanel" Orientation="Horizontal" HorizontalAlignment="Left"> <StackPanel> <TextBlock Text="Input" Style="{StaticResource H2Style}"/>

我有一个
列表框
,其中的项目填充了
文本框
es。从
列表框中进行选择时,如何识别所选的文本字符串。下面是我的
列表框的XAML代码

<StackPanel x:Name="InputPanel" Orientation="Horizontal" HorizontalAlignment="Left">
    <StackPanel>
        <TextBlock Text="Input" Style="{StaticResource H2Style}"/>
        <TextBlock Text="Select Scenario:" Style="{StaticResource H3Style}"/>
        <ListBox x:Name="ScenarioList" Margin="0,0,20,0" HorizontalAlignment="Left" SelectionChanged="ScenarioList_SelectionChanged">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}"/>
                </DataTemplate>
            </ListBox.ItemTemplate>
            <ListBoxItem x:Name="Scenario1">
                <TextBlock Style="{StaticResource ListBoxTextStyle}" Text="1) Pick a single photo" />
            </ListBoxItem>
            <ListBoxItem x:Name="Scenario2">
                <TextBlock Style="{StaticResource ListBoxTextStyle}" Text="2) Pick multiple files" />
            </ListBoxItem>
            <ListBoxItem x:Name="Scenario3">
                <TextBlock Style="{StaticResource ListBoxTextStyle}" Text="3) Pick a folder" />
            </ListBoxItem>
            <ListBoxItem x:Name="Scenario4">
                <TextBlock Style="{StaticResource ListBoxTextStyle}" Text="4) Save a file" />
            </ListBoxItem>
        </ListBox>
    </StackPanel>
或者,您可以在选择更改事件上尝试此选项

 private void ScenarioList_SelectionChanged(object sender, SelectionChangedEventArgs e) 
  {
        if (((ListBox)sender).SelectedItem != null)
        MessageBox.Show("You have selected " + (ListBox)sender).SelectedItem);
  }
你可以这样做:

var selectedText = ((TextBlock)((ListBoxItem)ScenarioList.SelectedItem).Content).Text
您也可以从SelectionChangedEventArgs获得它,例如:

public void ScenarioList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var item = e.AddedItems[0] as ListBoxItem;
    var selectedText = ((TextBlock)item.Content).Text;
}

内森,谢谢,这是票。工作起来很有魅力。洛萨·帕伦斯,我得研究一下才能理解。再次感谢。
var selectedText = ((TextBlock)((ListBoxItem)ScenarioList.SelectedItem).Content).Text
public void ScenarioList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var item = e.AddedItems[0] as ListBoxItem;
    var selectedText = ((TextBlock)item.Content).Text;
}