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}" />