我有一个需求,我需要从DataTable
中直接显示数据,即不需要对单元进行编辑。另一个要求是我需要显示Combobox
作为每列的标题。其次,第一列需要是checkbox
,检查哪一行是灰色的。我认为这应该是可行的DataGrid
,但我不确定,因为我无法找到办法做到这一点。使用视图模型将数据表绑定到DataGrid
可以请有人帮助我。请注意,我希望使用MVVM方式,而不是在xaml.cs中编写代码。
热切期待着回复。
在此先感谢。
编辑:代码添加虽然它没有太大的... 的.xaml
<DataGrid HorizontalAlignment="Left" Margin="0,274,0,0" VerticalAlignment="Top" Height="321" Width="981" AutoGenerateColumns="True" ItemsSource="{Binding Path=UploadedProductData, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}">
<DataGrid.Columns>
<DataGridTemplateColumn CanUserReorder="False" CanUserResize="False">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<ComboBox HorizontalAlignment="Right" VerticalAlignment="Top" Width="100"/>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="" VerticalAlignment="Top"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
在主窗口的视图模型 -
DataTable _uploadedProductData;
public DataTable UploadedProductData
{
get { return _uploadedProductData; }
set
{
_uploadedProductData = value;
}
}
以上是财产。
在xaml.cs - 我设定的上述属性 - 一些按钮事件,你在你的要求说
ViewModel.UploadedProductData = dt;
有很多教程会帮助你,但我不会去搜索它们,只是给你答案。我给你的一个建议是不要直接使用数据表,而是把它变成一个集合(毕竟这是MVVM的方式);无论是手动或借助一些库,将行映射到类的实例。然后,您可以添加一个代表复选框的单独属性,并使用绑定来解决其他所有问题。 DataGrid有许多选项可用于您需要指定的各种模板,这就是它。 –
新用户越来越多地来到“StackOverflow”并寻求完整项目的帮助。这是*不* *什么StackOverflow是。我们的想法是,每个开发人员*都会自己完成工作*,并且只会在这里提出如何解决特定问题,同时提供他们的代码示例。从[StackOverflow帮助中心](http://stackoverflow.com/help/dont-ask),*您的问题应合理范围。如果你可以想象整本书能够回答你的问题,那么你的要求太高了。*请阅读帮助页面。 – Sheridan
是的 - 其实我确实经历了一些教程,但我不确定如何构建GRID模板,这就是我的主要问题,......这种方法。此外,我提供了DataTable使事情变得更简单,我可以肯定地在最终版本中通过一个类来做到这一点。感谢您的回应。 – Saket