繁体   English   中英

WPF自定义控件和绑定属性

[英]WPF Custom control and binding property

我正在自定义ListView。 在此范围内,我想定义一个具有CellBinding属性的自定义GridViewColumn,该属性本身就是BindingBase。

此属性的定义如下:

public class GridViewColumn : System.Windows.Controls.GridViewColumn
{
    public static readonly DependencyProperty CellBindingProperty = DependencyProperty.RegisterAttached( "CellBinding", typeof( BindingBase ), typeof( GridViewColumn ),
            new PropertyMetadata( null, new PropertyChangedCallback( OnCellBindingChanged ) ) );

    public BindingBase CellBinding
    {
        get => (BindingBase)this.GetValue( CellBindingProperty );
        set => this.SetValue( CellBindingProperty, value );
    }...

在xaml编辑器中一切正常,并且似乎可以正确识别此属性:

     <wpfTools:GridViewColumn Header="Titre2" SortProperty="B" CellAlignement="Right" CellBinding="{Binding B}"/>

但是,当我想在运行时使用此属性时, column.CellBinding的结果始终为null。 拜托,为什么?

CellBinding ,如果它应该被设置为应该是一个依赖项属性BindingBase

您应该将其实现为CLR属性,然后实现GridViewColumn类以根据需要将绑定应用于生成的单元元素:

public class GridViewColumn : System.Windows.Controls.GridViewColumn
{
    private BindingBase _cellBinding;
    public BindingBase CellBinding
    {
        get => _cellBinding;
        set => _cellBinding = value;
    }
    //...
}

获取依赖属性的值会评估绑定,而绑定基不是您想要的BindingBase

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM