gpt4 book ai didi

.net - 从 DataGridColumn 绑定(bind)到 DataContext 属性

转载 作者:行者123 更新时间:2023-12-04 23:55:03 24 4
gpt4 key购买 nike

房产 Foo在我的DataContext

ViewModel {
Visibility Foo;
}

但我不知道如何访问 FooColumn 内.在这种情况下,我假设它可能正在寻找 Foo在任何绑定(bind)到 DataGrid 的对象中 ItemsSource
<DataGrid Visibility="{Binding Foo}">                      // works
<DataGrid.Columns>
<DataGridTextColumn Visibility="{Binding Foo}" /> // fails

我试过了
Binding="{Binding DataContext.Foo}"

还有一堆东西 RelativeSource标签也是如此。

此外,是否有某种方法可以从 GUI 中查看和选择要绑定(bind)的属性?

编辑:事实证明,列本身不是 FrameworkElements,因此它们无法找到 DataGrid 祖先。但是,您可以使用下面答案中的技术将列的 CellTemplate 的属性绑定(bind)到 DataContext。

最佳答案

这应该有效:

<DataGridTextColumn Visibility="{Binding Path=DataContext.Foo, RelativeSource={RelativeSource AncestorType=DataGrid}}" />

您对绑定(bind)到当前项目的列是正确的 - 这就是您需要使用 RelativeSource 的原因获取 DataGrid,然后访问 Foo属性(property)在其 DataContext .

至于选择要绑定(bind)的属性,WPF 设计器的属性面板和 Visual Studio 插件(如 Resharper)可以提供帮助,但最终除了简单绑定(bind)之外,它们在任何事情上都做得不好,所以你只剩下什么了是你自己和你对正在发生的事情的理解。

关于.net - 从 DataGridColumn 绑定(bind)到 DataContext 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17867853/

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