我对ComboBox控件有一个相当有趣的案例 - CustomComboBox;
在这个ComboBox的样式中,Popup包含一个请求DataContext的自定义控件;
<ctrl:CustomGrid DataContext="{TemplateBinding DataContext}" GridName="{Binding Preferences.CurrentGridName}"/>
这个想法:
逻辑:
问题:
我确信绑定或表示逻辑上的内容很糟糕...... 请提出一些想法,我将不胜感激这里的提示
由于
答案 0 :(得分:1)
OnApplyTemplate
应用于覆盖该方法的控件(既不是其父项也不是子项)时,将调用<{ControlTemplate
。如果输入OnApplyTemplate
一次,则还必须创建一次覆盖控件。我的意思是你只有一个单个母版页实例。这不应该是意料之外的。
在谈到Popup
和DataContext
时,从Popup
到其外部的绑定经常会出现问题。所以,我宁愿写一些代码隐藏来向Popup
提供正确的上下文,而不是依赖于Binding
。确定在SL5之前存在DataContextChanged事件缺失的问题。要解决此问题,您应该在DependencyProperty
上定义自定义CustomComboBox
,将其绑定到CustomComboBox
的上下文,并将其值分配给{Popup
中的PropertyChangedCallback
1}}。