我有一个继承自网格的自定义控件。在该控件中,我有一个ColumnHeaders列表(从Label继承的控件)。但列表不起作用.ColumnHeaders在xaml中定义。
代码:
public List<ColumnHeader> ColumnHeaders { get { return (List<ColumnHeader>)GetValue(ColumnHeadersProperty); } set { SetValue(ColumnHeadersProperty, value); } }
public static readonly DependencyProperty ColumnHeadersProperty = DependencyProperty.Register("ColumnHeaders", typeof(List<ColumnHeader>), typeof(DataGrid),
new FrameworkPropertyMetadata(new List<ColumnHeader>(), FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.AffectsParentMeasure, OnColumnHeadersChanged));
<lib:DataGrid Columns="9" Rows="16" x:Name="mVersions" RowHeader="True" ColumnHeader="True" ColumnEnter="ColumnEnter" Background="Transparent">
<lib:DataGrid.ColumnHeaders>
<lib:ColumnHeader Content="Bedieningsb." />
<lib:ColumnHeader Content="LCD" />
<lib:ColumnHeader Content="Herhaalb." />
<lib:ColumnHeader Content="Relais" />
<lib:ColumnHeader Content="Printer" />
<lib:ColumnHeader Content="Voedingscontr." />
<lib:ColumnHeader Content="Redundantie" />
<lib:ColumnHeader Content="WebModule" />
<lib:ColumnHeader Content="Net" />
</lib:DataGrid.ColumnHeaders>
</lib:DataGrid>
永远不会调用函数OnColumnHeadersChanged。为什么?但其他属性正在更新网格。
答案 0 :(得分:0)
您可以尝试使用此代码
public static readonly DependencyProperty ColumnHeadersProperty = DependencyProperty.Register("ColumnHeaders", typeof(List<ColumnHeader>), typeof(DataGrid),
new PropertyMetadata(OnColumnHeadersChanged));