c# - WPF DataGrid 从 DataGridTemplateColumn 获取单元格内容
问题描述
我有一个到 dataGrid 的 dataTable 绑定:
CS:
SQLiteDataAdapter sQLiteDataAdapter = new SQLiteDataAdapter(_command);
DataTable dataTable = new DataTable("Inventory");
sQLiteDataAdapter.Fill(dataTable);
for (int i = 0; i < dataTable.Rows.Count; i++)
{
dgridTenderInventory.Items.Add(new
{
ID = dataTable.Rows[i]["id"],
Specs = dataTable.Rows[i]["specs"],
Image = dataTable.Rows[i]["image"]
});
}
XAML:
<DataGrid x:Name="dgridTenderInventory" RowHeaderWidth="0" MouseDown="DgridTenderInventory_MouseDown">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
<DataGridTemplateColumn Header="Image">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Height="50" Source="{Binding Image, Converter={StaticResource BinaryImageConverter}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Specs">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Specs}" TextWrapping="Wrap"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
我可以通过选择这样的行来获取 ID (DataGridTextColumn) 的单元格值:
object item = dgridTenderInventory.SelectedItem;
string ID = dgridTenderInventory.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text;
但是当我想要获取 Specs(作为文本)或 Image(作为图像)时,它会显示“...返回 null”。可能它来自DataGridTemplateColumn。如何从 DataGridTemplateColumn 内部获取值?(特别是,我需要获取图像并设置图像(称为 imgPopup),就像 dataGrid 图像单元格一样)
string specs= dgridTenderInventory.SelectedCells[2].Column.GetCellContent(item) as TextBlock).Text; // return null
imgPopup.Source = dgridTenderInventory.SelectedCells[1].Column.GetCellContent(item) as Image).Source ; // ?? how does it be implemented?
解决方案
DataGridTemplateColumn 只是为 DataGrid 上的列定义模板样式,您永远不应该在此元素上定义绑定,绑定应该在数据级别完成。
推荐阅读
- vba - 无需打开应用程序且无需用户交互 VBA 即可打印
- android - 更新文档时如何跳过 Firestore 中的字段?
- php - Ad_group_ad_asset_view 中的 Google 广告 api 字段asset.name 为空,类型为 YOUTUBE_VIDEO
- symfony - 始终在学说 DQL 中获得列
- reactjs - 没有重载与 Vega-react 库匹配此调用
- encoding - 如何为 psexec 执行 UAC?
- python - 引发特定异常python
- python - 信息 - 任务退出并返回代码 Negsignal.SIGSEGV
- python - 带有关联表类对象的 Flask SQLAlchemy 多对多
- java - JAVA Json:属性的getter定义冲突