代码之家  ›  专栏  ›  技术社区  ›  niba

为什么绑定到MinWidth不起作用?

  •  0
  • niba  · 技术社区  · 11 年前

    在我的应用程序中,我创建了模板化控件。现在我想将MinWidth绑定到依赖属性。例如,在我的xaml中

    <ColumnDefinition  Width="Auto" MinWidth="{TemplateBinding ColumnWidth}"/>
    

    在我的代码中

    public double ColumnWidth
    {
        get { return (double)GetValue(ColumnWidthProperty); }
        set { SetValue(ColumnWidthProperty, value); }
    }
    
    public static readonly DependencyProperty ColumnWidthProperty =
        DependencyProperty.Register(
            "ColumnWidth", typeof(double), typeof(Schedule), new PropertyMetadata(200));
    

    不幸的是,它不起作用,我不知道为什么。最小宽度始终为0。也许有人知道我做错了什么?

    1 回复  |  直到 11 年前
        1
  •  1
  •   Clemens    11 年前

    我不知道为什么 TemplateBinding 在你的情况下不起作用,但你总是可以用普通的 Binding 这样地:

    <ColumnDefinition MinWidth="{Binding ColumnWidth,
                                 RelativeSource={RelativeSource Mode=TemplatedParent}}"/>
    

    我已经在一个自定义控件的ControlTemplate中测试了这一点。 模板绑定 不起作用, 结合