KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to simplify some code by putting the ViewModel models into the code behind and binding the DataContext as "this", but it seems to work differently, in the following example: Why is it when the button is clicked, the TextBlock bound to "Message" does not change, even though OnPropertyChanged("Message") is called? XAML: <Window x:Class="TestSimple223.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <StackPanel HorizontalAlignment="Left"> <Button Content="Button" Click="button1_Click" /> <TextBlock Text="{Binding Path=Message, Mode=TwoWay}"/> <TextBlock x:Name="Message2"/> </StackPanel> </Window> Code Behind: using System.Windows; using System.ComponentModel; namespace TestSimple223 { public partial class Window1 : Window { #region ViewModelProperty: Message private string _message; public string Message { get { return _message; } set { _message = value; OnPropertyChanged("Message"); } } #endregion public Window1() { InitializeComponent(); DataContext = this; Message = "original message"; Message2.Text = "original message2"; } private void button1_Click(object sender, RoutedEventArgs e) { Message = "button was clicked, message changed"; Message2.Text = "button was click, message2 changed"; } #region INotify public event PropertyChangedEventHandler PropertyChanged; protected
Tags (comma-separated)
Save Edits
Cancel