我尝试将Text
的{{1}}属性绑定到我的属性,但文本不会更新。
XAML
TextBlock
C#
<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>
答案 0 :(得分:12)
在MainWindow的构造函数中将MainWindow的 DataContext
设置为自身以解析绑定:
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
或强>
如果您未设置DataContext,则必须使用 RelativeSource
从XAML明确解析绑定:
<TextBlock Name="StatusBarLabel"
Text="{Binding Message, RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType=Window}}"/>
注意 - 您可以随时查看Visual Studio的输出窗口是否存在任何绑定错误。