wpf中的子类绑定到datagrid列

时间:2012-03-10 19:43:18

标签: binding wpfdatagrid

我有一类以下细节:

Public Class Contact
        Public prime As ContactPrime
End Class
Public Class ContactPrime
        Property Conid As String
        Property Conname As String
        Property Company As String
        Property Jobtitle As String
        Property Contactno As String
        Property Addr As String
        Property Type As String
End Class

我有一个数据网格,项目源设置为联系人列表(联系人),问题是如何显示Prime.Conname。

其他信息: 以下是datagrid中的当前数据绑定:

        <DataGrid AutoGenerateColumns="False" Name="DataGrid1" Margin="0,10,0,0" Height="500" Width="695" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Visible" SelectionMode="Single" IsReadOnly="True" >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Conname}" Header="Name" Width="150" />
                <DataGridTextColumn Binding="{Binding Contactno}" Header="Numbers" Width="150"/>
                <DataGridTextColumn Binding="{Binding Addr}" Header="Address" Width="150"/>
                <DataGridTextColumn Binding="{Binding Type}" Header="Type" Width="80"/>
                <DataGridTextColumn Binding="{Binding Company}" Header="Company" Width="70" />
                <DataGridTextColumn Binding="{Binding Jobtitle}" Header="Job" Width="70"/>
            </DataGrid.Columns>
        </DataGrid>

1 个答案:

答案 0 :(得分:1)

您只能绑定到属性,而不能绑定到字段,因此请确保Prime属于Contact的属性。

此外,如果您希望向UI通知更改,那么您应该对类型实施INotifyPropertyChanged

如果您希望向UI通知联系人列表的集合更改,那么这应该实现INotifyCollectionChanged。 WPF提供的ObservableCollection类型可以做到这一点。