2014-07-04 25 views
6

numaralı özelliğin Text özelliğini bağlamayı deneyin ancak metin güncellenmiyor.WPF TextBlock Binding

XAML

<Window x:Name="window" x:Class="Press.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" 
    Title="Press analyzer" Height="350" Width="525" ContentRendered="Window_ContentRendered" 
    d:DataContext="{d:DesignData MainWindow}"> 
... 
    <StatusBar Name="StatusBar" Grid.Row="2" > 
     <TextBlock Name="StatusBarLabel" Text="{Binding Message}"/> 
    </StatusBar> 
</Window> 

MainWindow kurucuları içindedir kendisine MainWindow arasında DataContext Set C#

public partial class MainWindow : Window, INotifyPropertyChanged 
{ 
    private string _message; 
    public string Message 
    { 
     private set 
     { 
      _message = value; 
      OnPropertyChanged("Message"); 
     } 
     get 
     { 
      return _message; 
     } 
    } 
public event PropertyChangedEventHandler PropertyChanged; 

    [NotifyPropertyChangedInvocator] 
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) 
    { 
     PropertyChangedEventHandler handler = PropertyChanged; 
     if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 
+1

Datacontext'i nerede ayarlıyorsunuz? – Sajeetharan

+0

@Sajeetharan I thint htis ayarı d: DataContext = "{d: DesignData MainWindow}' –

cevap

8

bağlayıcı halletmeye çalıştığı:

public MainWindow() 
{ 
    InitializeComponent(); 
    this.DataContext = this; 
} 
Her zaman gidip çıkışını kontrol edebilirsiniz -

<TextBlock Name="StatusBarLabel" 
      Text="{Binding Message, RelativeSource={RelativeSource 
            Mode=FindAncestor, AncestorType=Window}}"/> 

Not: DataContext'i set yoksa 10

VEYA

, sen RelativeSource kullanarak XAML dan açıkça bağlayıcı çözmek zorunda Herhangi bir bağlama hataları için Visual Studio penceresi.

+1

Teşekkürler, ikinci yol kullandım ve işe yarıyor. –