【问题标题】:How to bind to the control's dependency property inside ControlTemplate如何在 ControlTemplate 中绑定到控件的依赖属性
【发布时间】:2012-01-17 13:00:30
【问题描述】:

我通过将我自己的ControlTemplate 和新的DependencyProperty PopupText 添加到扩展控件来扩展PopupBaseEdit 控件。属性PopupText 是从控件的使用者初始化的。这里没有问题。问题是;如何将TextBox.Text 绑定到ControlContent 内的附加属性?

这是 XAML:

<ControlTemplate x:Key="myPopuptemplate">
  <StackPanel>
    <TextBox Margin="5" Text="???????"/>
  </StackPanel>
</ControlTemplate>
<Style TargetType="local:myControl">
  <Setter Property="PopupContentTemplate" 
          Value="{StaticResource myPopuptemplate}"/>
</Style>

【问题讨论】:

    标签: wpf wpf-controls dependency-properties controltemplate


    【解决方案1】:

    使用TemplateBinding

    【讨论】:

    • 当我尝试 'Text="{Binding Path={TemplateBinding PopupText}}"' 时得到 错误 MC3011:在类型 'Control' 上找不到静态成员 'PopupTextProperty'我>。但是,这样的属性是存在的
    • @user1153896:你读过参考资料吗? TemplateBinding 用于绑定路径,它取代了普通绑定。
    • Text="{TemplateBinding PopupText}" - 给出相同的编译错误。附加属性“PopupText”已定义
    • @user1153896: TemplateBindings 用于普通的 DependencyProperties 未附加属性,另外:您需要将 ControlTemplate.TargetType 设置为控件的类型,否则编译器将不知道有哪些属性.
    • - 给出运行时错误 {"'myControl' ControlTemplate TargetType 与模板类型 'PopupContentControl' 不匹配。"}
    猜你喜欢
    • 2019-06-17
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多