2010-12-22 20 views
1

如果有人能夠給我一些關於我遇到的非常惱人的問題的指示器,我將不勝感激 - 我會瘋狂地嘗試做這項工作,因爲我確信必須有一個簡單的解決方案,但我不能看見!WPF - 如何使用listview中的當前selecteditem更新文本框?使用MVVM!

由於我在此發佈的上一個問題的非常有幫助的答案,我試圖在WPF中使用MVVM方法。

我有在一個頁面列表視圖結合在視圖模型一個ObservableCollection & ListView的選擇項綁定到視圖模型的屬性稱爲SelectedEntity:

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

在不同的網頁我有在視圖模型綁定到SelectedEntity的名稱屬性的文本框:

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

在視圖模型的代碼是:

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

RaisePropertyChanged是一種實現INotifyPropertyChanged的方法。

當我在列表視圖中選擇的項目發生變化時,我想要做的就是更新文本塊,但它不會?我錯過了真正明顯的東西嗎?

非常感謝您給我的任何指導!

+0

,他們都共享`ViewModel`對象的同一個實例嗎?因爲你的代碼看起來足夠好工作。根據目前的信息,很難找到可能出現的問題。 – decyclone 2010-12-22 11:15:08

+0

您是在兩個頁面中使用相同的ViewModel還是將ViewModel的新實例傳遞給每個頁面? – 2010-12-22 11:45:56

回答

0

我得到這個工作使用MVVM光工具包,並上傳了它here

它的工作原理,因爲當你說'在不同的頁面我有一個textbox`的ViewModelLocator持有的靜態引用視圖模型

相關問題