Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# 绑定自定义DataGridHeader MVVM_C#_Wpf_Mvvm_Datagrid_Datacontext - Fatal编程技术网

C# 绑定自定义DataGridHeader MVVM

C# 绑定自定义DataGridHeader MVVM,c#,wpf,mvvm,datagrid,datacontext,C#,Wpf,Mvvm,Datagrid,Datacontext,我正在尝试将文本块绑定到数据网格的标题中。然而,它似乎没有约束力。我已经尝试将DataContext设置为根Grid中的一个,但它没有解决问题 下面是一个例子: 查看 <Window ... Title={Binding Title}> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" />

我正在尝试将
文本块
绑定到
数据网格
标题
中。然而,它似乎没有约束力。我已经尝试将DataContext设置为根
Grid
中的一个,但它没有解决问题

下面是一个例子:

查看

<Window 
       ... 
       Title={Binding Title}> 
    <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>
    
   <TextBox Text="{Binding Title, UpdateSourceTrigger=PropertyChanged}" />
    
    <DataGrid Grid.Row="1" x:Name="root">
        <DataGrid.Columns>
            <DataGridTextColumn>
                <DataGridTextColumn.Header>
                    <TextBlock Text="{Binding Title, UpdateSourceTrigger=PropertyChanged}" />
                </DataGridTextColumn.Header>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
结果

我想要的是能够在
文本框中写入并更改标题。然而,它似乎是无标号的

我相信问题出在DataContext上,但我还没能解决它


感谢

解决方案是将dataContext绑定到祖先

<TextBlock DataContext="{Binding RelativeSource={RelativeSource AncestorType=DataGrid, Mode=FindAncestor}, Path=DataContext}" Text="{Binding Title, UpdateSourceTrigger=PropertyChanged}" />

我把它留在这里

<TextBlock DataContext="{Binding RelativeSource={RelativeSource AncestorType=DataGrid, Mode=FindAncestor}, Path=DataContext}" Text="{Binding Title, UpdateSourceTrigger=PropertyChanged}" />