如何从ListBox中选择的项目获取特定属性

我有以下内容:

  

这是SelectedItem定义

 public MemEntity SelectedItem {get; set;} 

MemEntity是一个包含的类

 public String s {get; get;}. 

基本上,我希望所选项目的s显示在TextBlock (与ListBox显示的属性相同)。 这不起作用,所以我做错了什么?

试试这个,

  

然后为ListBox添加一个名称,

   

有多种方法可以做到这一点。 在另一个答案中已经提供了一个选项,该选项集中于通过绑定到视图元素来实现期望的function。 这是另一种选择。

视图不知道所选项目已更改。 研究使用INotifyPropertyChanged

您可以创建基本ViewModel来封装重复的function

 public abstract class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged = delegate { }; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } 

让视图模型inheritance自此基类,以便视图在绑定时了解更改。

 public class ItemsViewModel : ViewModelBase { public ItemsViewModel() { items = new ObservableCollection(); } private MemEntity selectedItem; public MemEntity SelectedItem { get { return selectedItem; } set { if (selectedItem != value) { selectedItem = value; OnPropertyChanged(); //this will raise the property changed event. } } } public ObservableCollection items { get; set; } } 

视图现在将知道SelectedItem属性何时更改并相应地更新视图。