我一直在努力與DataGrid。c#如何正確編輯對象與DataGrid
我需要從SQL中讀取數據並將它們填充到表中,並可以編輯它們(不需要將更改上傳回數據庫)。然後根據表格,我將生成一份報告。
我從來沒有使用過DataGrid,我也是WPF概念的新手,但這裏有兩種我嘗試過的方法。
第一招:dataGridItems.ItemsSource = previewItems;
其中previewItems
是Item
對象列表。
public class Item
{
public string ItemName { get; set; }
public string ItemCode { get; set; }
public decimal ItemPrice { get; set; }
public Item(string itemName, string itemCode, decimal itemPrice = 0)
{
this.ItemName = itemName;
this.ItemCode = itemCode;
this.ItemPrice = itemPrice;
}
}
我可以讀/寫數據 - 我願意。此解決方案存在的問題是列大小,該大小根據當前可見的數據動態調整大小。
第二個:在XAML中綁定。
<DataGrid x:Name="dataGridItems" IsReadOnly="True" SelectionMode="Single" HorizontalAlignment="Left" Margin="691,10,0,0" Grid.Row="2" VerticalAlignment="Top" Height="628" Width="791" MinWidth="260" MouseDoubleClick="dataGridItems_MouseDoubleClick">
<DataGrid.Columns>
<DataGridTextColumn Header="Kód" MinWidth="60" Width="10*" Binding="{Binding Path=ItemCode}"/>
<DataGridTextColumn Header="Název výkonu" MinWidth="200" Width="90*" Binding="{Binding Path=ItemName}"/>
</DataGrid.Columns>
</DataGrid>
然後在循環中,我加入項目
DataGridCustomer.Items.Add(customer);
這爲我工作,直到我發現每當我雙擊DataGrid
cell.Even如果我設置IsReadOnly="True"
該應用程序崩潰,這是一些思考,我不會失望。
我花了幾個小時找到一種溶劑 - 發現了一些,但要麼我沒有失敗,要麼他們沒有工作。
感謝您的幫助
感謝它的工作。我可以爲特定列定義列的大小嗎?現在它在datagrid中設置所有的comlumns。 – Izmail360
檢查_e.Column.Header_或_e.Column.DisplayIndex_或任何其他信息,如果您不想更改任何內容,請使用return。 – Ron