【发布时间】:2011-02-08 04:36:46
【问题描述】:
我从http://sweux.com/blogs/smoura/index.php/wpf/2009/06/15/wpf-toolkit-datagrid-part-iv-templatecolumns-and-row-grouping/ 中获取了一些示例代码,这些代码提供了 WPF DataGrid 中的数据分组。我正在修改示例以使用 DataTable 而不是实体集合。
我的问题是在翻译绑定声明 {Binding Parent.IsExpanded},它工作正常,其中 Parent 是对具有 IsExpanded 属性的实体的引用,它适用于我的弱类型 DataTable,其中 Parent 是列的名称并引用同一 DataTable 中的另一个 DataRow。我尝试过像 {Binding Parent.Items[IsExpanded]} 和 {Binding Parent("IsExpanded")} 这样的声明,但这些似乎都不起作用。
如何在我的 DataTable 中创建与 DataRow Parent 的 IsExpanded 列的绑定?
提前致谢, 戴夫
编辑:我为这个问题的一般情况创建了一些示例代码:
Window1.xaml:
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WpfToolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
Title="Window1" Height="300" Width="300">
<Grid>
<WpfToolkit:DataGrid
Name="dgSampleData"
ItemsSource="{Binding}"
AutoGenerateColumns="True"
Margin="0,75,0,0">
<WpfToolkit:DataGrid.Columns>
<WpfToolkit:DataGridTextColumn
Header="Bound Data"
Binding="{Binding Col3.Item(0)}"
/>
</WpfToolkit:DataGrid.Columns>
</WpfToolkit:DataGrid>
</Grid>
</Window>
Window1.xaml.vb:
Imports System.Data
Class Window1
Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Dim dtSampleData As New DataTable
dtSampleData.Columns.Add("Col1")
dtSampleData.Columns.Add("Col2")
dtSampleData.Columns.Add("Col3")
dtSampleData.Rows.Add(dtSampleData.NewRow())
dtSampleData.Rows.Add(dtSampleData.NewRow())
dtSampleData.Rows(0).Item(0) = "r1c1"
dtSampleData.Rows(0).Item(1) = "r1c2"
dtSampleData.Rows(0).Item(2) = dtSampleData.Rows(0)
dtSampleData.Rows(1).Item(0) = "r2c1"
dtSampleData.Rows(1).Item(1) = "r2c2"
dtSampleData.Rows(1).Item(2) = dtSampleData.Rows(0)
dgSampleData.DataContext = dtSampleData
End Sub
End Class
我尝试使用 Binding="{Binding Col3.Item(0)}" 行来显示值 r1c1,但单元格内容中没有出现任何内容。这是为什么? Item(0) 不应该只是 Col3 的另一个属性吗?
【问题讨论】:
标签: wpf binding wpfdatagrid