Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表不';无法在自定义控件中更新_C#_Wpf_Custom Controls - Fatal编程技术网

C# 列表不';无法在自定义控件中更新

C# 列表不';无法在自定义控件中更新,c#,wpf,custom-controls,C#,Wpf,Custom Controls,我有一个从网格继承的自定义控件。在该控件中,我有一个ColumnHeader列表(从Label继承的控件)。但是列表不起作用。列标题是在xaml中定义的 代码: public List<ColumnHeader> ColumnHeaders { get { return (List<ColumnHeader>)GetValue(ColumnHeadersProperty); } set { SetValue(ColumnHeadersProperty, value); }

我有一个从网格继承的自定义控件。在该控件中,我有一个ColumnHeader列表(从Label继承的控件)。但是列表不起作用。列标题是在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>
public List columnheader{get{return(List)GetValue(columnheaderproperty);}set{SetValue(columnheaderproperty,value);}
公共静态只读DependencyProperty ColumnHeadersProperty=DependencyProperty.Register(“ColumnHeaders”、typeof(List)、typeof(DataGrid),
新建FrameworkPropertyMetadata(新建列表(),FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.AffectsParentMeasure,OnColumnHeadersChanged));

永远不会调用OnColumnHeadersChanged函数。为什么?但是其他属性正在更新网格。

您可以尝试使用此代码

public static readonly DependencyProperty ColumnHeadersProperty = DependencyProperty.Register("ColumnHeaders", typeof(List<ColumnHeader>), typeof(DataGrid),
  new PropertyMetadata(OnColumnHeadersChanged));
公共静态只读DependencyProperty ColumnHeadersProperty=DependencyProperty.Register(“ColumnHeader”、typeof(List)、typeof(DataGrid), 新属性元数据(OnColumnHeadersChanged));
使用
ObservableCollection
而不是
列表
ObservableCollection也不起作用没有人知道如何让它起作用吗?我得到一个无默认值的nullexception,使用默认值,结果与以前一样