我正在尝试GridControl
从 DevExpress 使用,但我不能做我通常ListView
用GridView
View
.
我做了两个方法。使用DisplayMemberBinding
和CellTemplate
。两者都没有显示。下面的代码(我删除了一些列):
<dxg:GridControl ItemsSource="{Binding}" Name="gridControl1">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="Teste" DisplayMemberBinding="{Binding DataNascimento}"/>
<dxg:GridColumn Header="Nome">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Nome}"/>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView Name="tableView1" AutoWidth="True" />
</dxg:GridControl.View>
</dxg:GridControl>
如下图所示:
你可以看到我的专栏,但没有数据。我绑定了 3 个项目,它显示了 3 行。数据本身已绑定,但看起来模板未显示。
我尝试了这个问题的相同方法,但对我不起作用。我的班级有INotifyPropertyChanged
并且我使用了一个ObservableCollection<T>
before bindind 到GridControl
. 唯一可行的方法是,如果我删除几乎所有代码并将AutoPopulateColumns
. True
但在某些情况下,我想要一个自定义格式并且无法使用此选项实现。
Edit1: 我在设计模式下做了这个并且工作:
<dxg:GridColumn FieldName="DataNascimento" Name="gridColumn3">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayFormat="{}{0:dd/MM/yyyy HH:mm:ss}" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
Edit2:
尝试了@blindmeis
与网格相同的方法,它的工作方式与我预期的一样:
<DataGrid AutoGenerateColumns="False" Grid.Row="2" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding DataNascimento}" Header="Nascimento" />
<DataGridTextColumn Binding="{Binding Nome}" Header="Header" />
<DataGridTemplateColumn Header="Teste">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Nome}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
看起来这种方法适用于ListView
和DataGrid
。不幸的是GridControl
表现不同。
使用<dxg:GridColumn.EditSettings>
方法是否正确?