DataGridTemplateColumn标头绑定

mob*_*tte 5 c# wpf mvvm wpfdatagrid

我有一个动态创建的DataGrid与以下XAML:

 <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Cells}" IsReadOnly="True" Visibility="{Binding VisibilityStatus}"       
                                  CanUserResizeColumns="False" CanUserAddRows="False" RowBackground="{Binding Color}" Margin="0" RowHeight="25" HeadersVisibility="All">
                                <DataGrid.Columns>
                                    <DataGridTemplateColumn Header="{Binding Path=Header}"> 
                                        <DataGridTemplateColumn.CellTemplate>
                                            <DataTemplate>
                                                <ComboBox ItemsSource="{Binding UniqueValuesToLapMapping.Keys, UpdateSourceTrigger=PropertyChanged}" 
                                                          SelectedItem="{Binding SelectedValue, Mode=TwoWay}"
                                                          SelectedIndex="0" Width="55"
                                                          Background="{Binding Color}"/>
                                            </DataTemplate>
                                        </DataGridTemplateColumn.CellTemplate>
                                    </DataGridTemplateColumn>
                                </DataGrid.Columns>
                            </DataGrid>
Run Code Online (Sandbox Code Playgroud)

除了标题之外,表格的所有内容都正确显示.无论我在哪个类中放置Header属性,我似乎无法绑定它.我已经尝试将它放入ViewModel,将它放入具有"Cells"属性的类中,并将其放入具有我在ComboBox中绑定的所有属性的类中.我也试过没有"Path ="的绑定,并将UpdateSourceTrigger设置为OnPropertyChanged并更改运行时的属性值:似乎没有任何效果.我在这里错过了什么?

这是我绑定到的所有这些类的属性:

    private string _header = "TEST";
    public string Header
    {
        get { return _header; }
        set { SetField(ref _header, value, "Header"); }
    }
Run Code Online (Sandbox Code Playgroud)

mob*_*tte 5

事实证明,它不在任何逻辑或可视树中.这个解决方案对我有用:

http://www.thomaslevesque.com/2011/03/21/wpf-how-to-bind-to-data-when-the-datacontext-is-not-inherited/