WPF - 如何使用listview中当前selecteditem更新文本框?使用MVVM!

时间:2010-12-22 10:18:32

标签: wpf mvvm binding

如果有人能给我一些关于我遇到的非常烦人问题的指示,我会感激不已 - 我会疯狂地尝试做这项工作,因为我确信必须有一个简单的解决方案,但我可以'看到了!

由于我在此处发布的上一个问题的非常有用的答案,我正在尝试在WPF中使用MVVM方法。

我在一个页面中有一个listview,它绑定到viewmodel&中的ObservableCollection; listview的选定项目绑定到viewmodel中名为SelectedEntity的属性:

<Listview Name="listview" ItemsSource="{Binding Entities}" SelectedItem="{Binding SelectedEntity, Mode=TwoWay}">

在另一个页面中,我有一个文本框绑定到viewmodel中SelectedEntity的Name属性:

<TextBlock Text="{Binding Path=SelectedEntity.Name}" />

viewmodel中的代码是:

Private Entity selectedEntity;
Public Entity SelectedEntity 
{ 
   get
   {
       return selectedEntity;
   }
   set
   {
       if (selectedEntity != value)
       {
           selectedEntity = value;
           RaisePropertyChanged("SelectedEntity"); 
       }
   }

RaisePropertyChanged是一个实现INotifyPropertyChanged的方法。

我想要做的是在列表视图中当前选定的项目发生更改时更新文本块,但它不会更改?我错过了一些非常明显的东西吗?

非常感谢您给我的任何指导!

1 个答案:

答案 0 :(得分:0)

我使用MVVM Light Toolkit并将其上传here

它的工作原理是因为ViewModelLocator拥有对ViewModel的静态引用