我有一个 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/