2013-06-21 16 views
10

Próbuję utworzyć prostą aplikację WPF przy użyciu powiązania danych. Kod wydaje się być prawidłowy, ale mój widok nie aktualizuje się podczas aktualizacji mojej usługi. Oto mój XAML:Powiązanie danych WPF Zawartość etykiety

<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> 

Oto mój kod z opóźnieniem:

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

Oto mój widok model

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)); 
     } 
    } 
} 

ja nie widzę, co ja tu brakuje? ? o.O

Odpowiedz

14

CalculatorOutput nie ma żadnego efektu. W jaki sposób widok powinien uzyskać wartość? Nieruchomość musi być również publiczna.

public String CalculatorOutput 
{ 
    get { return _calculatorOutput; } 
    set 
    { 
     _calculatorOutput = value; 
     NotifyPropertyChanged(); 
    } 
} 
Powiązane problemy