2013-09-12 2 views
0

У меня есть список в моем приложении WPF. Определение дано ниже:Полученное значение из ListBox WPF .NET 3.5

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

В коде, привязанным к списку, я привязываю ListBox к списку. Когда значение выбрано из поля списка, в моем коде позади, я хочу, чтобы иметь возможность получить это значение. Как мне это сделать? Пример кода C# будет полезен.

Спасибо.

ответ

0

Вы можете просто связать с элементом в вашем коде позади

Пример:

<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)); 
     } 
    } 

} 
+0

Я изменил мой код позади. Но myselectedItem все еще пуст. – supreethmurthy

+0

private ObservableCollection _myItems = new ObservableCollection (); public ObservableCollection MyItems { get {return _myItems; } set {_myItems = значение; } } – supreethmurthy

+0

приватная строка mySelectedItem; public string MySelectedItem { get {return mySelectedItem; } set {mySelectedItem = значение; NotifyPropertyChanged ("MySelectedItem"); } } общественное событие PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged (строка p) { if (PropertyChanged! = Null) { PropertyChanged (это новый PropertyChangedEventArgs (p)); } } – supreethmurthy

Смежные вопросы