我的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属性,然后一切正常(除了将地图置于特定位置的中心)。怎么会这样?
提前致谢!
答案 0 :(得分:2)
两个提示:
尝试增加“输出”窗口中显示的WPF消息的详细程度。您可以转到Tools > Options > Debugging > Output Window > WPF Trace Settings
并将Data Binding
更改为All
之类的内容来完成此操作。
向失败的绑定添加UpdateSourceTrigger
属性 - 可能是没有告知绑定更新。也许Snoop会触发应用程序范围的绑定更新。
我希望这可以帮助您找到问题的原因。
答案 1 :(得分:0)
m:Map控件怎么样?是否在初始化时尊重价值观?也就是说,如果你为财产提供一个固定价值,那就是工作。
尝试Reflector验证地图控件的代码。