WPF TextBlock Binding

I am trying to associate the Text property of the TextBlock property with my property, but the text is not updated.

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> 

FROM#

 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)); } } 
+7
c # wpf binding xaml textblock
source share
1 answer

Set the DataContext MainWindow for yourself in the MainWindow constructor to enable binding:

 public MainWindow() { InitializeComponent(); this.DataContext = this; } 

OR

If you do not set the DataContext, you need to explicitly enable binding from XAML using RelativeSource :

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

Note You can always go and check the Visual Studio output window for any binding errors.

+9
source share

All Articles