2013-06-21 22 views
10

Sto cercando di creare una semplice applicazione WPF utilizzando l'associazione dati. Il codice sembra buono, ma la mia vista non si sta aggiornando quando sto aggiornando la mia proprietà. Ecco la mia XAML:Associazione dati WPF Contenuto etichetta

<Window x:Class="Calculator.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:calculator="clr-namespace:Calculator" 
     Title="MainWindow" Height="350" Width="525" 
     Name="MainWindowName"> 
    <Grid> 
     <Label Name="MyLabel" Background="LightGray" FontSize="17pt" HorizontalContentAlignment="Right" Margin="10,10,10,0" VerticalAlignment="Top" Height="40" 
       Content="{Binding Path=CalculatorOutput, UpdateSourceTrigger=PropertyChanged}"/> 
    </Grid> 
</Window> 

Ecco il mio codice sottostante:

namespace Calculator 
{ 
    public partial class MainWindow 
    { 
     public MainWindow() 
     { 
      DataContext = new CalculatorViewModel(); 
      InitializeComponent(); 
     } 
    } 
} 

ecco la mia visione a modello

namespace Calculator 
{ 
    public class CalculatorViewModel : INotifyPropertyChanged 
    { 
     private String _calculatorOutput; 
     private String CalculatorOutput 
     { 
      set 
      { 
       _calculatorOutput = value; 
       NotifyPropertyChanged(); 
      } 
     } 

     public event PropertyChangedEventHandler PropertyChanged; 

     protected virtual void NotifyPropertyChanged([CallerMemberName] String propertyName = "") 
     { 
      var handler = PropertyChanged; 
      if (handler != null) 
       handler(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 

Io non sono in grado di vedere ciò che mi manca qui? ? o.O

risposta

14

CalculatorOutput non ha getter. Come dovrebbe la vista ottenere il valore? La proprietà deve essere pubblica pure.

public String CalculatorOutput 
{ 
    get { return _calculatorOutput; } 
    set 
    { 
     _calculatorOutput = value; 
     NotifyPropertyChanged(); 
    } 
} 
Problemi correlati