我有一个TextBlock,我想写入文本。为此,我在后台使用TextBox和其他一些逻辑。
<TextBlock
Text="{Binding Chunk}"
TextBlock.FontFamily="Arial"
VerticalAlignment="Center"
HorizontalAlignment="Left" />
<TextBox
Text="{Binding Chunk, UpdateSourceTrigger=PropertyChanged}"
Width="400"
AcceptsReturn="True"
MaxHeight="80"
Margin="0,10,20,10"
Padding="0,5,0,5" />
public string Chunk
{
get { return chunk; }
set
{
if (value == chunk || (value != null && value.Length > 400))
return;
chunk = value;
OnPropertyChanged("Chunk");
}
}
现在,如果我在TextBox中写入内容,TextBlock的内容将按预期更新。但是如果我从背景中向Chunk写一些内容,TextBlock和TextBox的内容都不会更新。触发了OnPropertyChanged事件,但显然会被忽略。
知道为什么吗?
答案 0 :(得分:3)
您需要在ViewModel上实现INotifyPropertyChanged
接口。我一直忘记这一点。