为了账号安全,请及时绑定邮箱和手机立即绑定

WPF调用动态控件,出现错误:System.NullReferenceException”

WPF调用动态控件,出现错误:System.NullReferenceException”

开满天机 2018-12-06 23:12:55
.xaml文件代码: <window> <window.resources> <DataTemplate x:Key="backTemplate">            <Border BorderBrush="#55FFFFFF" Background="AliceBlue" BorderThickness="1" CornerRadius="5">                <GroupBox Name="mapgroup"  Header="WPFMAP" Margin="12,27,241,12" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">                    <Grid>                        <my:GMapControl Name="MainMap"/>                    </Grid>                </GroupBox>            </Border>        </DataTemplate> </window.resources>   <Border Name="border">         <略写>    </Border> </window> .cs文件代码:     private void Convertmap_Click(object sender, RoutedEventArgs e)        {                        ((GMapControl)border.FindName("MainMap")).Manager.Mode = AccessMode.ServerAndCache;            ((GMapControl)border.FindName("MainMap")).DragButton = MouseButton.Left;//鼠标左击拖动地图            ((GMapControl)border.FindName("MainMap")).MapProvider = GMapProviders.BingMap;            ((GMapControl)border.FindName("MainMap")).Position = new PointLatLng(32.5149000, 118.78361500);            ((GMapControl)border.FindName("MainMap")).MaxZoom = 24;            ((GMapControl)border.FindName("MainMap")).MinZoom = 1;            ((GMapControl)border.FindName("MainMap")).Zoom = 4;        } 这样写动态引用控件,哪里出问题了,怎么改???
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

之前我也遇到过类似的问题,在WPF的书籍中有介绍说在Template中的名称只是在Template内有效,在外面无效,但是可以通过FindName来找到对应的元素,但是遇到和你相同的问题。于是就采用了另外一种方法,通过VisualTreeHelper来做可以实现的。

查看完整回答
反对 回复 2019-01-21
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

因为在你调用的时候还没有加载

查看完整回答
反对 回复 2019-01-21
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

恩,是的,但是怎么加载???谢谢

查看完整回答
反对 回复 2019-01-21
  • 3 回答
  • 0 关注
  • 554 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信