首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TemplateBinding DataContext in silverlight CustomControl

TemplateBinding DataContext in silverlight CustomControl
EN

Stack Overflow用户
提问于 2011-12-20 18:52:19
回答 1查看 607关注 0票数 0

关于ComboBox控件,我有一个相当有趣的案例-- CustomComboBox;

在这个ComboBox的样式中,弹出包含一个请求DataContext的自定义控件;

代码语言:javascript
复制
<ctrl:CustomGrid DataContext="{TemplateBinding DataContext}" GridName="{Binding Preferences.CurrentGridName}"/>

这个想法是:

若要在一个页面上多次使用此控件,请在

  • 容器
  • 中使用该控件。对于

上的页面,母版页控件需要有不同的DataContexts

逻辑:

在覆盖区的eventhandlers中,我得到了网格,并连接了几个

问题是:

  • ,即主页控件,只触发OnApplyTemplate一次
  • ,CustomComboBox的第一次出现就像预期的那样。然而,下一个步骤都使用相同的DataContext,即使在更改CustomComboBox的数据文本时,这些更改也不会达到更改我的CustomGrid DataContext

的目的。

我确信绑定或表示逻辑上的某些东西是不好的.请多加思考,我想在这里给你个提示。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-12-21 15:50:45

当将OnApplyTemplate应用于重写方法的控件(既不是其父控件也不是子控件)时,将调用ControlTemplate。如果只输入一次OnApplyTemplate,则还必须创建一次覆盖控件。我的意思是,您只是拥有一个单主页实例。这不应该是意料之外的。

谈到PopupDataContext,从Popup到外部绑定经常会出现问题。因此,我宁愿编写一些代码隐藏来向Popup提供正确的上下文,而不是依赖于Binding。在SL5之前确实存在DataContextChanged事件缺位的问题。要解决这个问题,您应该在您的CustomComboBox上定义您的自定义CustomComboBox,将其绑定到CustomComboBox的上下文中,并将其值分配给PropertyChangedCallback中的Popup

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8580448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档