2013-06-21 4 views
10

데이터 바인딩을 사용하여 간단한 WPF 응용 프로그램을 만들려고합니다. 코드가 잘 보이지만 내 속성을 업데이트 할 때 내보기가 업데이트되지 않습니다.WPF 데이터 바인딩 레이블 내용

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

내 코드 숨김이 있어요 : 내보기 모델은 내가 볼 수있어

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

내가 여기

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

을 놓치고 있어요 여기 내 XAML입니까? ? o.O

답변

14

CalculatorOutput에는 게터가 없습니다. 보기에서 가치를 얻으려면 어떻게해야합니까? 속성도 공개되어야합니다.

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