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