[英]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.