这是XAML:
<DataGrid Grid.Column="0" AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Path=Columns}"
x:Name="ColumnsGrid" RowHeaderWidth="0">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Binding="{Binding Path=Header}"
Header="{Binding ElementName=ColumnsGrid, Path=DataContext.Count, StringFormat=Columns ({0}), diag:PresentationTraceSources.TraceLevel=High}"/>
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
绑定返回错误:System.Windows.Data错误:2:无法找到目标元素的管理FrameworkElement或FrameworkContentElement.
我错过了什么?
更新:
答案如下:http: //blogs.msdn.com/b/jaimer/archive/2008/11/22/forwarding-the-datagrid-s-datacontext-to-its-columns.aspx
这里发生了什么?Columns集合只是Datagrid中的一个属性; 此集合不在逻辑(或可视)树中,因此DataContext不会被继承,这会导致无法绑定.
更新2: 关于DataGrid警告的好文章:http://blogs.msdn.com/b/vinsibal/archive/2009/04/07/5-random-gotchas-with-the-wpf-datagrid.aspx
| 归档时间: |
|
| 查看次数: |
4420 次 |
| 最近记录: |