Windows Phone 7(WP7)开发 PhoneTextBox的一个BUG需要注意

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 11:21 点击:

 

作为Toolkit的控件之一的PhoneTextBox控件是我非常喜欢用的一个小东西,原因很简单,它自带一个默认的提示,当用户没有输入即Text的值为String.Empty的时候,这个提示就会出现,而且颜色还很浅,而当用户输入任何内容之后,提示就会隐藏,这种操作方式很适合放在手机这种屏幕不大的设备上,很省地方,比那种一个TextBlock加一个TextBox的方式明显舒服很多。

但是前两天测试发现一个问题,应用中有一个PhoneTextBox用来显示用户的地理位置,在GPS工作正常的情况下,它的Text值默认绑定成为GPS获取坐标之后解析出来的地址,而如果GPS工作不正常的时候,Hint的值显示“GPS异常,请手动输入您当前的地址”。这样的设置再正常不过了,不是么。

但是问题出现啦,具体复现:在启动应用程序之前,在手机的设置里把GPS关闭,启动应用程序,PhoneTextBox正常提示“GPS异常,请手动输入您当前的地址”,按开始键返回主页面,再进入手机设置开启GPS,然后不断的按后退键返回刚才的应用程序,我的GPS数据获取是在Loaded事件里有一次,之后就只能手动按钮刷新了,显然此时GPS没有再次自动刷新,然后我进入有手动按钮刷新的那个页面(和PhoneTextBox不在同一个页面),手动刷新GPS坐标,GPS坐标和位置解析正常之后,按后退键返回有PhoneTextBox的那个主页面,这个时候,问题出现啦:Hint提示的字符串和Text显示的地理位置共同出现在了PhoneTextBox里,两个字符串交叠在这里,异常难受。

这是一个BUG,简单分析是由于把PhoneTextBox的Text值进行了双向绑定,在另一个页面里刷新GPS数据之后,PhoneTextBox的Text值相应的发生了改变,但由于PhoneTextBox这个页面并未处于激活状态,所以PhoneTextBox的Hint的显示没有消失。

发现这个问题之后,我试图手动监测PhoneTextBox的Text变化然后控制Hint的隐藏,但是发现这不是一个好办法。后来,干脆把GPS获取的默认的地理位置也绑定到了Hint里,并做了一个Converter如下:

 public class NowAddressConverter : IValueConverter

    {

 

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

        {

            string result = value.ToString();

            if (result == "")

            {

                return "GPS异常,请手动输入您当前的地址";

            }

            else

            {

                string str = @"当前地址:"; www.2cto.com

                if (value.ToString().StartsWith(str))

                    result = value.ToString();

                else

                {

                    result = str + value;

                }

 

            }

 

            return result;

        }

 

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

        {

     &n

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Windows Phone 项目实战之我的微盘(下)
    • Windows Phone 实用开发技巧(26):对DataTemplate中的元素播放
    • Windows Phone 实用开发技巧(25):Windows Phone读取本地数据
    • Windows Phone 实用开发技巧(27):创建透明Tile
    • Windows Phone 知识锦(12月版)
    • Windows Phone实用开发技巧(31):密码加密
    • Windows Phone 项目实战之我的微盘(上)
    • WP7实例篇之土豆搜索器(2)
    • [翻译]WP7 QuickStart-第七篇-布局
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1