c# - WPF 与 RelativeSource 和 AncestorType 的绑定(bind)

标签 c# wpf xaml

我有一个 WPF 应用程序。它有一个分成 4 行的网格。在第 2 行中,我有一个数据网格,其数据上下文设置为 OrderBlock 的对象。这一切都很好。但是,我希望将数据网格的列标题文本值之一绑定(bind)到我的 View 模型中的属性。

以下是我尝试失败的示例。

<DataGridTextColumn Header="{Binding RelativeSource={RelativeSource 
   AncestorType={x:Type Window}}, Path=ColumnHeadInfo}" 
   Binding="{Binding RejectReason}" IsReadOnly="True"/>

最佳答案

Window 没有名为 ColumnHeadInfo 的属性,但我假设您的 ViewModel 是您的 Window 的 DataContext,这可能有这个属性? !

如果是这样,请试试这个:

Path=DataContext.ColumnHeadInfo

编辑:
由于仅此一项并不能解决您的问题:原因可能是 DataGridColumn 不是可视化树的一部分,因此找不到任何父元素,因为它没有任何父元素。因此,RelativeSource AncestorType 绑定(bind)不会产生任何结果。这应该通过输出窗口中的警告来指示。可能,this link可能对你有帮助。

关于c# - WPF 与 RelativeSource 和 AncestorType 的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20705097/

相关文章:

c# - 如何在 C# 中使用反射获取从方法调用的方法列表

c# - nServiceBus、Rhino 服务总线、MassTransit - 视频、演示、学习资源

java - 操作系统如何决定如何运行 .exe

WPF:GroupBox 动态高度

wpf - 如何在 WPF 中使用 XAML 设置 ComboBox header

c# - 将按钮 XAML 更改为 C#

c# - 在 win 10 通用应用程序中使用 mvvm-light 导航服务时,无法将页面类型的对象转换为类型 'Windows.UI.Xaml.Controls.Frame'

c# - C# 中的 C 位域

wpf - 将Click事件添加到PowerShell中的WPF DataGrid按钮列中

c# - WPF 组合框悬停更改颜色模板