关于ComboBox控件,我有一个相当有趣的案例-- CustomComboBox;
在这个ComboBox的样式中,弹出包含一个请求DataContext的自定义控件;
<ctrl:CustomGrid DataContext="{TemplateBinding DataContext}" GridName="{Binding Preferences.CurrentGridName}"/>这个想法是:
若要在一个页面上多次使用此控件,请在
上的页面,母版页控件需要有不同的DataContexts
逻辑:
在覆盖区的eventhandlers中,我得到了网格,并连接了几个
问题是:
的目的。
我确信绑定或表示逻辑上的某些东西是不好的.请多加思考,我想在这里给你个提示。
谢谢
发布于 2011-12-21 15:50:45
当将OnApplyTemplate应用于重写方法的控件(既不是其父控件也不是子控件)时,将调用ControlTemplate。如果只输入一次OnApplyTemplate,则还必须创建一次覆盖控件。我的意思是,您只是拥有一个单主页实例。这不应该是意料之外的。
谈到Popup和DataContext,从Popup到外部绑定经常会出现问题。因此,我宁愿编写一些代码隐藏来向Popup提供正确的上下文,而不是依赖于Binding。在SL5之前确实存在DataContextChanged事件缺位的问题。要解决这个问题,您应该在您的CustomComboBox上定义您的自定义CustomComboBox,将其绑定到CustomComboBox的上下文中,并将其值分配给PropertyChangedCallback中的Popup。
https://stackoverflow.com/questions/8580448
复制相似问题