从列表框 WPF .NET 3.5 中选取的值

本文关键字:选取 列表 WPF NET | 更新日期: 2023-09-27 18:31:18

我的WPF应用程序中有一个列表框。定义如下:

<ListBox Margin="17.493,33.32,22.491,26.656" Name="lstData"   
                 PreviewMouseLeftButtonDown="ListBox_MouseDown"
                 IsTextSearchEnabled="False" />

在隐藏的代码中,我将列表框绑定到列表。从列表框中选择值时,在我的代码隐藏中,我希望能够检索该值。我该怎么做?示例 C# 代码将很有帮助。

谢谢。

从列表框 WPF .NET 3.5 中选取的值

您可以只绑定到代码隐藏中的项

例:

<ListBox Margin="17.493,33.32,22.491,26.656" Name="lstData"   
         SelectionChanged="ListBox_selectionChanged"
         IsTextSearchEnabled="False"
         ItemsSource="{Binding MyItems}"
         SelectedItem="{Binding MySelectedItem}"/>

public partial class MainWindow : Window, INotifyPropertyChanged
{
    public MainWindow()
    {  
        InitializeComponent();
        DataContext = this;
    }
    private ObservableCollection<MyItemType> _myItems = new ObservableCollection<MyItemType>();
    public ObservableCollection<MyItemType> MyItems
    {
        get { return _myItems; }
        set { _myItems = value; }
    }
    private MyItemType _mySelectedItem;
    public MyItemType MySelectedItem
    {
        get { return _mySelectedItem; }
        set { _mySelectedItem = value; NotifyPropertyChanged("MySelectedItem"); }
    }
    private void ListBox_selectionChanged(object sender, SelectionChangedEventArgs e)
    {
        MessageBox.Show(_mySelectedItem);
    }
    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(string p)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(p));
        }
    }
}