簡體   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