WPF绑定以某种方式延迟(错误)

时间:2011-12-18 16:30:19

标签: wpf binding delay

我的WPF应用程序有问题。不知何故,我的WPF控件中的两个(几个)绑定似乎没有立即应用。当我用Snoop查看可视树时,突然应用绑定并且一切正常。

可能是什么原因?

XAML代码在这里:

<Grid Grid.Column="1" Margin="5">
    <m:Map ZoomLevel="12" Center="{Binding MapCenter, Mode=TwoWay}">
        <m:Map.CredentialsProvider>
            <m:ApplicationIdCredentialsProvider ApplicationId="???"/>
        </m:Map.CredentialsProvider>

        <m:Pushpin Location="{Binding Station.Location, Mode=TwoWay, Converter={StaticResource debugConverter}}" />
    </m:Map>
    <Button Command="{Binding CenterOnAddressCommand, PresentationTraceSources.TraceLevel=High, Converter={StaticResource debugConverter}}"
        Content="Adresse zentrieren" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,20" />
</Grid>

Map.Center属性的绑定起作用,而其他两个绑定(在Pushpin和Button上)则不起作用。 Map控件来自Bing Maps WPF Control。

修改 在进行了一些进一步的调查之后,我尝试将绑定移除到Map.Center属性,然后一切正常(除了将地图置于特定位置的中心)。怎么会这样?

提前致谢!

2 个答案:

答案 0 :(得分:2)

两个提示:

  1. 尝试增加“输出”窗口中显示的WPF消息的详细程度。您可以转到Tools > Options > Debugging > Output Window > WPF Trace Settings并将Data Binding更改为All之类的内容来完成此操作。

  2. 向失败的绑定添加UpdateSourceTrigger属性 - 可能是没有告知绑定更新。也许Snoop会触发应用程序范围的绑定更新。

  3. 我希望这可以帮助您找到问题的原因。

答案 1 :(得分:0)

m:Map控件怎么样?是否在初始化时尊重价值观?也就是说,如果你为财产提供一个固定价值,那就是工作。

尝试Reflector验证地图控件的代码。