gpt4 book ai didi

c# - 绑定(bind)自定义 DataGridHeader MVVM

转载 作者:行者123 更新时间:2023-12-03 10:42:06 25 4
gpt4 key购买 nike

我正在尝试绑定(bind) TextBlock里面HeaderDataGrid .但是,它似乎没有约束力。我试过设置 数据上下文 到根 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>

查看模型
public class MainWindowViewModel : BindableBase
{
private string _title;
public string Title
{
get { return _title; }
set { SetProperty(ref _title, value); }
}

public MainWindowViewModel()
{
Title = "Initial header";
}
}
结果
Showcase
我想要的是能够写在 TextBox并更改标题。然而,它似乎是不受约束的。
我相信 的问题数据上下文 ,但我无法修复它。
谢谢

最佳答案

解决方案是将 dataContext 绑定(bind)到祖先。

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

我会把它留在这里。

关于c# - 绑定(bind)自定义 DataGridHeader MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55727579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com