2016-07-27 40 views
-1

更新底部。簡單綁定將無法正常工作/更新C#wpf


我覺得我的錯誤是一個非常簡單的錯誤,但我不知道該怎麼做別的。

我有View有一個TextBlock。

<TextBlock x:Name="aCalories" 
      Text="{Binding Path= aCalories, UpdateSourceTrigger=PropertyChanged}" 
      Grid.Row="5" 
      Grid.Column="3" VerticalAlignment="Center" 
      Foreground="#2d3b53" 
      HorizontalAlignment="Center"/> 

做一些東西,如添加不同項目的卡路里後「aColories」進行了更改後應更新。但「aColories」保持0. 感謝斷點我看到「_acalories」獲取值,但它似乎不會傳遞給我的視圖。

aClor​​ies在我的視圖模型:

namespace FoodsLib.ViewModel 

{ 
    public class ViewModelTagesBedarfWindow : ViewModelBase, INotifyPropertyChanged 
    { 

    public ViewModelTagesBedarfWindow(Repository repository, ModelPersone logedPers) : base(repository) 
    { 
     LoginPerson = logedPers; 
    } 

private double _acalories; 
public double aCalories 
{ 
    get 
    { 
     return _acalories; 
    } 
    set 
    { 
     if (_acalories != value) 
     { 
      _acalories = value; 
      OnPropertyChanged("aCalories"); 
     } 
    } 

// my OnPropertyChanged 
public event PropertyChangedEventHandler PropertyChanged; 

protected void OnPropertyChanged(string name) 
{ 
    PropertyChangedEventHandler handler = PropertyChanged; 
    if (handler != null) 
    { 
     handler(this, new PropertyChangedEventArgs(name)); 
    } 
} 
} 

而且我.xaml.cs

public ViewModelTagesBedarfWindow MyViewModel { get; set; } 
//ViewModelFrdg _viewModel; 
public TagesBedarfWindow(ModelPersone logedPerson) 
{ 
    InitializeComponent(); 

    MyViewModel = new ViewModelTagesBedarfWindow(new Repository(), logedPerson); 
    this.DataContext = MyViewModel; 

    logedPers = logedPerson; 

} 

我希望能夠得到值和值的變化自動。

例如: 另一個「TextBlock」綁定到這個和(半)的作品。
但是,更改後也不會更新。

public double aSatFat 
    { 
     get 
     { 
      return LoginPerson.RDASatFat; 
     } 
     set 
     { 
      _asatFat = LoginPerson.RDASatFat; 
      OnPropertyChanged("aSatFat"); 

     } 
    } 

看起來這是我想的那麼簡單。

綁定是正確的,我的DataContext設置好,但有很多模型我混淆了兩種不同模型的2種不同「卡路里」。 一個名爲:「_acalories」另一個「RDACalories」。

我明白downvote,因爲我的錯誤是簡單的,沒有人從答案中獲益。

+0

在輸出窗口中是否有任何綁定錯誤? – mariocatch

+1

你是否在你的'ViewModel'類中實現了'INotifyPropertyChanged' – Jace

+0

不幸的是,這個問題沒有綁定錯誤。 編輯:是執行。 –

回答

0

你的綁定似乎是正確的,代碼也是完美的。 這個問題似乎是與此代碼:

MyViewModel = new ViewModelTagesBedarfWindow(new Repository(), logedPerson); 
this.DataContext = MyViewModel; 

在DataContext沒有被設置。在此位置放置一個斷點並檢查dataContext是否設置正確。

public TagesBedarfWindow(ModelPersone logedPerson) 

此外,您還需要一個默認的構造函數,意味着一個不帶任何參數的構造函數。所以上面的構造函數不會工作。

+0

謝謝你的建議,但似乎它沒有默認的構造函數(以某種方式)工作正常。這個錯誤很簡單。 –

+0

錯誤是什麼? – ViVi

+0

我混淆了兩個不同模型的兩個屬性(包括「卡路里」)。我給了一個屬性值,並試圖顯示另一個從未有過任何價值的屬性。我在凌晨4點有點累了... –