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>
は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>
は正しいですか?