【发布时间】:2011-12-18 16:30:18
【问题描述】:
我的 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 上)无效。地图控件来自必应地图 WPF 控件。
编辑: 经过进一步调查后,我尝试删除与 Map.Center 属性的绑定,然后一切正常(除了将地图居中在某个位置之外)。这怎么可能?
提前致谢!
【问题讨论】:
-
转换器甚至没有被调用?
-
没错,当我查看 Snoop 中的绑定时它们会被调用,但在那之前不会:(.
-
并不是说我知道如何处理这些信息,但是如果您给它一个错误的绑定名称,PresentationTraceSources 是否会给您一个错误?
-
不,如果我绑定到一些不存在的属性,它不会改变任何东西:(。
-
会不会出现打开窗口时地图控件不可见的情况?如果是这样,它可能在可见之前没有被模板化,而用 Snoop 触摸它可能会触发初始化。