0

グリッドから継承するカスタム コントロールがあります。そのコントロールには、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 は呼び出されません。なぜ??しかし、他のプロパティがグリッドを更新しています。

4

1 に答える 1

0

このコードで試すことができます

public static readonly DependencyProperty ColumnHeadersProperty = DependencyProperty.Register("ColumnHeaders", typeof(List<ColumnHeader>), typeof(DataGrid),
  new PropertyMetadata(OnColumnHeadersChanged));
于 2013-03-19T10:40:53.847 に答える