Listbox绑定获取选中项值

Listbox binding get selected item value

我是 Wpf 的新手,在获取列表框中的选定项时遇到问题 我创建了一个带有列表框和文本框的简单 xaml。 我使用绑定来填充我的列表框,包括我希望以后使用的触发器(选中或不选中)。

Xaml代码:

<ListBox x:Name="LstB_Checklist" HorizontalAlignment="Left" Height="190" Margin="39,45,0,0" VerticalAlignment="Top" Width="275" Background="#FF363636" BorderBrush="{x:Null}" FontSize="18" Foreground="White" BorderThickness="2" SelectionChanged="LstB_Checklist_SelectionChanged" SelectedItem="{Binding SelectedProperty,Mode=TwoWay}" >
        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="True" >
                        <Setter Property="FontWeight" Value="Bold" />
                        <Setter Property="Background" Value="#FFFFDC00" />
                        <Setter Property="Foreground" Value="Black" />
                    </Trigger>
                </Style.Triggers>
                <Style.Resources>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightGray"/>
                </Style.Resources>
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <Image>
                        <Image.Style>
                            <Style TargetType="{x:Type Image}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Checked}" Value="false">

                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Checked}" Value="true">

                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </Image.Style>
                    </Image>

                    <TextBlock Text="{Binding  Path=Title, Mode=TwoWay}" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    <TextBox x:Name="txtb_Selection" HorizontalAlignment="Left" Height="23" Margin="60,264,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>

在后面的代码中

public MainWindow()
    {
        InitializeComponent();
        List<LstB_Item> items = new List<LstB_Item>();
        items.Add(new LstB_Item() { Title = "Items 1", Checked = false });
        items.Add(new LstB_Item() { Title = "Items 2", Checked = false });
        items.Add(new LstB_Item() { Title = "Items 3", Checked = false });
        LstB_Checklist.ItemsSource = items;
    }

    public class LstB_Item : INotifyPropertyChanged
    {
        public string Title { get; set; }

        private bool _checked;

        public bool Checked
        {
            get { return _checked; }
            set { _checked = value; NotifyPropertyChanged(); }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    private void LstB_Checklist_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        txtb_Selection.Text = LstB_Checklist.SelectedItem.ToString();
    }

lisbox 已正确填充。我的问题是:获取所选项目值的正确代码是什么。

非常感谢支持

恐怕问题不是很清楚或答案很明显,但我 post 一个答案,它可以帮助:

可能的答案:

var selected = LstB_Checklist.SelectedItem as LstB_Item;
txtb_Selection.Text = selected.Title;