wpf - 将数据库中的数据绑定到 WPF DatagridTemplateColumn 时出现问题(模板列有一个组合框)
问题描述
我正在尝试使用 Caliburn.Micro 将数据库中的数据绑定到 WPF 中的数据网格。Caliburn 非常适用于标准文本列,但是当我尝试将数据绑定到模板列时,数据不会显示在屏幕上。例如,在 Material Item 列中,项目仅通过简单的绑定显示在视图中。但是当我尝试使用带有组合框的模板列时,同样的事情不会发生。这里的目标是使用 Bindablecollection 将数据从数据库中提取到视图中......然后有一个下拉菜单可以从 Material Status、Ordered、Not in Stock、In Stock 中进行选择。将过去选择的状态(例如,无库存)更改(例如,有库存)及其在许多应用程序中是一个非常简单的想法。这是代码和正在发生的事情的图片。
<DataGrid AutoGenerateColumns="False"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
CanUserAddRows="False"
x:Name="ProjectMaterialList"
SelectedItem="{Binding SelectedMaterialItem}"
Margin="10,10,10.333,10">
<DataGrid.Columns>
<DataGridTextColumn Header="MaterialId"
Binding="{Binding MaterialId}"
CanUserResize="False"
Visibility="Hidden" />
<DataGridTextColumn Header="Project"
Binding="{Binding ProjectName}"
CanUserResize="False"
Width="15*" />
<DataGridTextColumn Header="Type"
Width="7*"
Binding="{Binding MaterialType}"
CanUserResize="False" />
<DataGridTextColumn Header="Quantity"
CanUserResize="False"
Binding="{Binding MaterialQuantity}"
Width="5*" />
<DataGridTextColumn Header="Unit"
Binding="{Binding MaterialMeasureType}"
CanUserResize="False"
Width="5*" />
<DataGridTextColumn Header="Measure"
Binding="{Binding MaterialMeasure}"
CanUserResize="False"
Width="5*" />
<DataGridTextColumn Header="Item"
Binding="{Binding MaterialItem}"
CanUserResize="False"
Width="15*" />
<DataGridTemplateColumn Header="Status"
CanUserResize="False"
Width="11*"
x:Name="MaterialStatus">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding MaterialModel.MaterialStatus }" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=OrderStatuses }"
SelectedItem="MaterialStatus" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
解决方案
您没有为您的数据网格指定项目来源?项目源应该绑定到您的可观察集合,例如:
ItemsSource="{Binding ListOfMaterial}"
推荐阅读
- json - 错误:将循环结构转换为 JSON
- django - RuntimeError: Model class snippets.models.Snippet 没有声明明确的 app_label 并且不在 INSTALLED_APPS 中的应用程序中
- javascript - 绘制图像轮廓的最佳实践
- php - Laravel 错误:只能通过引用返回变量引用
- node.js - mongodb 4.0.1 ECONNREFUSED 在开发计算机上的 node.js 中工作
- linux - 当基本命令不起作用时,如何在 ~/.bashrc 中恢复我的 PATH?
- python - Django Web 服务器从浏览器 URL 中删除查询字符串
- c# - 使用 HttpClient 从 Google Cloud Storage 读取文件时,从服务器接收响应并将其写入日志之间的时间差太大
- java - JVM 如何解析命令行参数?
- android - Android - 当应用程序关闭时,Volley 请求会抛出 ECONNREFUSED