如何DataGrid
通过绑定隐藏WPF中的列?
这就是我做的:
<DataGridTextColumn Header="Column header"
Binding="{Binding ColumnValue}"
Width="100"
ElementStyle="{StaticResource DataGridRightAlign}"
Visibility="{Binding MyColumnVisibility}" />
Run Code Online (Sandbox Code Playgroud)
这就是我得到的(除了列仍然可见):
System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement.BindingExpression:路径= MyColumnVisibility; 的DataItem = NULL; target元素是'DataGridTextColumn'(HashCode = 1460142); 目标属性是"可见性"(类型"可见性")
不知道什么是治理手段.在我窗口的某个地方是否有一些总统先生决定哪些有效,哪些无效?或者我必须投票?
在网上搜索解决方案时,我发现有十几页具有很好的标题,但完全不相关或不可复制的内容.所以这似乎是关于这个问题的第一个问题.任何的想法?
由于某种原因,DataGrid的列标题不是FrameWork元素,因此您不能使用绑定来设置标题文本之类的内容.如果用.NET 4.0改变了(如果我现在使用的是CodePlex的最新WPFToolkit),请纠正我.
我正在尝试使用DataGrid进行时间表演示,其中日期应该是标题文本的一部分(即"Sun,Nov 01"),我在XAML中有以下内容:
<dg:DataGrid.Columns>
<dg:DataGridTextColumn Header="Description" Width="Auto" Binding="{Binding Description}" IsReadOnly="True"/>
<dg:DataGridTextColumn Header="Mon" Width="50" Binding="{Binding Allocations[0].Amount}" />
... every other day of the week ....
<dg:DataGridTextColumn Header="Sun" Width="50" Binding="{Binding Allocations[6].Amount}" />
<dg:DataGridTextColumn Header="Total" MinWidth="50" Binding="{Binding TotalAllocatedAmount}" IsReadOnly="True" />
</dg:DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)
我想使用我用于数据的相同AllocationViewModel(即"{Binding Allocations [0] .Amount}"并将它的DisplayName属性绑定到标题文本.有人可以告诉我该怎么做吗?如果我有要使用静态资源,我如何在那里获取DataContext?
编辑----------------优先工作 - 周围
Josh Smith在一段时间后发布了一篇关于DataContextSpy的文章,这是我遇到这个问题时最干净的解决方法.这是让它工作的类:
/// <summary>
/// Workaround to enable <see cref="DataContext"/> bindings in situations where the DataContext is not redily available.
/// </summary>
/// <remarks>http://blogs.infragistics.com/blogs/josh_smith/archive/2008/06/26/data-binding-the-isvisible-property-of-contextualtabgroup.aspx</remarks>
public class DataContextSpy : Freezable
{
public DataContextSpy() …
Run Code Online (Sandbox Code Playgroud)