<StackPanel Name="stackpanel1" DataContext="{x:Static SystemFonts.IconFontFamily}">
    <TextBlock Text="{Binding Path=Source}" />
    <TextBlock Text="{Binding Path=LineSpacing}" />
    <TextBlock Text="{Binding Path=FamilyTypefaces[0].Style}" />
    <TextBlock Text="{Binding Path=FamilyTypefaces[0].Weight}" />
    <Button Content="Button" Click="Button_Click"/>
</StackPanel>private void Button_Click(object sender, RoutedEventArgs e)
{
    stackpanel1.DataContext = SystemFonts.MessageFontFamily;
}点击Button之后,修改了StackPanel的DataContext,为什么TextBlock的数据没有更新呢?

解决方案 »

  1.   

    我猜测 IconFontFamily 与 MessageFontFamily 的各个属性值是一样的        <StackPanel Name="stackpanel1" >
                <TextBlock Text="{Binding Path=Source}" />
                <TextBlock Text="{Binding Path=LineSpacing}" />
                <TextBlock Text="{Binding Path=FamilyTypefaces[0].Style}" />
                <TextBlock Text="{Binding Path=FamilyTypefaces[0].Weight}" />
                <Button Content="Button" Click="Button_Click"/>
            </StackPanel>去掉初始时 DataContext 的值 
    使用Button进行更新是 可以更新的