Я пытаюсь сделать простой привязку, но у меня возникают некоторые проблемы. У меня есть текстовый блок и кнопка. Текстовый блок привязан к свойству, называемому «слово». Когда вы нажимаете кнопку, меняется значение слова, и я хочу автоматически обновить текстовый блок. Это классический пример, пожалуйста, объясните мне, что я делаю неправильно:Пример супер простого связывания
namespace WpfApplication5
{
public partial class MainWindow : Window, INotifyPropertyChanged
{
private string _word;
public string word
{
get { return _word; }
set
{
_word= value;
RaisePropertyChanged(word);
}
}
private void change_Click(object sender, RoutedEventArgs e)
{
word= "I've changed!";
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
}
И мой XAML с связыванию:
<Window x:Class="WpfApplication5.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="210,152,0,0" TextWrapping="Wrap" Text="{Binding word}" VerticalAlignment="Top"/>
<Button x:Name="change" Content="Change" HorizontalAlignment="Left" Margin="189,235,0,0" VerticalAlignment="Top" Width="75" Click="change_Click"/>
</Grid>
</Window>
Спасибо, я не заметил этого раньше. Как установить DataContext? Я попытался «this.DataContext»; перед InitializeComponent(); но это не позволяет мне это делать. – Sturm
@Sturm: см. Обновление. –
Я очень ценю вашу помощь, которая сработала! Теперь я готов идти дальше и изучать реальную привязку. Кстати, как вы связываете какое-то свойство вроде этого, но в другом классе? (Не код MainWindow). Например, если у меня есть класс Data.cs, разделенный с этим словом? – Sturm