我有一個需求,我需要從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