我有一個發票程序,用於跟蹤客戶可能想要購買的物品。每次按下「添加項目」按鈕時,QTY單元格都會增加。我正在運行的問題是,該值在後臺升級,但未在單元本身中進行更改。 但是,如果單擊單元格,則值將更新。但我希望它在我點擊「添加項目」按鈕後立即更新。當我點擊這個按鈕時,我能做些什麼來更新單元格信息? 這是代碼我有與按鈕推datagrid中的更新單元wpf
public partial class MainWindow : Window
}
private void btnAddItem_Click(object sender, RoutedEventArgs e)
{
addDataGridRow(invoiceItemID, cbxItems.SelectedItem.ToString(), Convert.ToDouble(txtPrice.Text));
}
private void addDataGridRow(int id, string itemName, double itemPrice)
{
//lstDataItem.Add(new DataItem { sQTY = count.ToString(), sNAME = itemName, sPRICE = itemPrice, sRemove = "Delete Item" });
// Rows = new ObservableCollection<DataItem> { new DataItem() };
for (int i = 0; i < Rows.Count; i++)
{
if (Rows[i].sNAME == itemName)
{
Rows[i].sQTY = Rows[i].sQTY + 1;
id = Rows[i].id;
bSameItem = true;
}
}
if (id == 0)
{
Rows.Add(new DataItem());
}
else if (!bSameItem)
{
Rows.Add(new DataItem());
}
if (!bSameItem)
{
Rows[id].id = id;
Rows[id].sQTY = 1;
Rows[id].sNAME = itemName;
Rows[id].sPRICE = itemPrice;
invoiceItemID++;
dgInvoice.ItemsSource = Rows;
}
bSameItem = false;
}
}
public class DataItem
{
public int id { get; set; }
public int sQTY { get; set; }
public string sNAME { get; set; }
public double sPRICE { get; set; }
}
我不知道,如果你需要我的XAML工作,但這裏是以防萬一
<DataGrid x:Name="dgInvoice" HorizontalAlignment="Left" Margin="10,92,0,0" VerticalAlignment="Top" Height="608" Width="488" AutoGenerateColumns="False" ItemsSource="{Binding}" RowHeight="25">
<DataGrid.Columns>
<DataGridTextColumn Header="QTY" Binding="{Binding Path=sQTY}" Width="100"/>
<DataGridTextColumn Header="NAME" Binding="{Binding Path=sNAME}" Width="200"/>
<DataGridTextColumn Header="PRICE" Binding="{Binding Path=sPRICE}" Width="80"/>
<DataGridTemplateColumn Width="100">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Button Height="20">Delete Item</Button>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
沒有對WPF許多答覆說我已經看到我什麼時候搜索過這個話題。任何幫助將不勝感激。
這不是WPF中的一種方法。 –
至少爲我的目的,它的工作,但你是多個歡迎告訴我如何真正做到這一點 – Doctor06
我已經添加了答案。 –