none
如何调用另外一个xaml页面的datatemplate里控件? RRS feed

  • 问题

  • 情形是这样的:

    我在home页面有个button1,button1的datatemplate是一个hyperLinkButton,about页面有个textblock。想要实现的效果是:点击hyperLinkButton进入about页面后,about页面的textblock的text显示为home页面的hyperLinkButton的content值。

    或者简单点:

    进入about页面后,textblock的text显示为home页面的button1.content值。(不从datatemplate里要值)

    谢谢!


    http://LightGIS.com
    2011年3月29日 9:18

答案

  • 你可以在主界面声明一个属性public String TxtContent {get;set;}

     

    在home页面的button上绑定这个属性,再在about这个页面也把这个属性绑定上去。

    最后在跳转的地方要记得把主界面的引用传给home和about这两个页面的DataContext(上下文),注意是页面的DataContext,不然会绑定不上的.


    努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!
    • 已标记为答案 adamloo 2011年4月7日 5:36
    2011年4月6日 13:37
    版主

全部回复

  • 给控件加个key 不就找到了吗?
    2011年3月29日 13:43
  • 谢谢回复

    是两个不同的xaml页面···


    http://LightGIS.com
    2011年3月29日 14:02
  • 你这两个页面难道不是两个类型吗?  实例化另一个类型不就行了

        Uri url = new Uri("/SilverlightApplication1;component/mainPage.xaml");
                System.Windows.Resources.StreamResourceInfo sri = App.GetResourceStream(url);
                using (System.IO.StreamReader sm = new System.IO.StreamReader(sri.Stream))
                {
                    UserControl uc = System.Windows.Markup.XamlReader.Load(sm.ReadToEnd()) as UserControl ;
                    //操作控件
               
                }

    2011年3月29日 15:06
  • 实例化也得不到上个页面的值啊 

    我试了···

    简单说吧:

    点击页面1的button(content为 “我是页面1的button” )导航到页面2,页面2内的一个txtblock 显示来自页面1的button的content 。即txtblock的text值赋成“我是页面1的button”


    http://LightGIS.com
    2011年3月31日 14:02
  • 你这个合适使用page页面  不合适usercontrol

    http://hi.baidu.com/mldark/blog/item/f6f324d21937bc27960a164f.html  参考这个page页面url参数传送

    2011年4月1日 8:04
  • 你可以在主界面声明一个属性public String TxtContent {get;set;}

     

    在home页面的button上绑定这个属性,再在about这个页面也把这个属性绑定上去。

    最后在跳转的地方要记得把主界面的引用传给home和about这两个页面的DataContext(上下文),注意是页面的DataContext,不然会绑定不上的.


    努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!
    • 已标记为答案 adamloo 2011年4月7日 5:36
    2011年4月6日 13:37
    版主
    1. 使用 cookie
    2. 使用 Isolated Storage

     在点击页面1的按钮是,把内容存到cookie 或 Isolated storage中,等页面2显示完成后,读取相应的值,关闭页面2时,清除储存的值就可以了。

    2011年4月6日 15:14
  • 好高级 能具体讲下吗? 虽然问题已经解决了 谢谢!祝好!
    http://LightGIS.com
    2011年4月7日 5:37
  • 谢谢 试了下 你的解决方案也是可行的····

    我最终是通过将button1的content 传给包含这2个页面的共同容器的tag值,然后导航到页面2时,txtblock再从tag里取····


    http://LightGIS.com
    2011年4月7日 5:40
  • 谢谢 不过好像不太适合我的情况 但通过你给的链接也学到了东西 

    可惜不能标为答案(以免误后来人) 谢谢! 祝好!


    http://LightGIS.com
    2011年4月7日 5:42