c# - 如何将列标题绑定(bind)到 ViewModel 中的属性? (WPF MVVM)

标签 c# wpf mvvm datagrid datacontext

我的窗口具有绑定(bind)到 ViewModel 对象(例如 VM1)的 DataContext。 VM1 有很多属性,其中之一是名为“MyTitle”的字符串。

我在“Window\Grid\DataGrid”中有一个 DataGridTextColumn。如何将 DataGridTextColumn 中的属性“Header”绑定(bind)到我的 VM1 ViewModel 中的属性“MyTitle”?

谢谢!

最佳答案

不幸的是,DataGrid 的列定义不继承DataContext,因为它们不是可视化树的一部分,所以不能直接绑定(bind)到 View 模型。您需要求助于 this article 中描述的解决方法:

<DataGrid.Resources>
    <local:BindingProxy x:Key="proxy" Data="{Binding}" />
</DataGrid.Resources>

...

<DataGridTextColumn Header="{Binding Data.MyTitle, Source={StaticResource proxy}}"/>

关于c# - 如何将列标题绑定(bind)到 ViewModel 中的属性? (WPF MVVM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965615/

相关文章:

c# - 如何使用 Entity Framework 批量插入与外键相关的多个表

c# - 强制 ListCollectionView 中的一个组成为第一个

wpf - 通过 FindName() 查找动态生成的 Wcf 控件

wpf - 如何为 VSE 2013 桌面安装 MVVMLight 片段

c# - 在 QueryBuilder 中使用 or 运算符连接 where 查询

mvvm - 如何为我的模型对象集成 db4o 和 autofac?

c# - 如何实现高效的 WhenEach 流式传输任务结果的 IAsyncEnumerable?

c# - 如何解析 bool 表达式并将其加载到类中?

WPF文本框绑定(bind)问题

javascript - WPF/ChromiumWebBrowser 执行 Javascript 函数(带参数!)