【发布时间】:2021-06-14 12:45:35
【问题描述】:
我正在尝试在添加新行时计数并删除重复的行,如果该行不存在,它应该为它创建一个新行。 如果添加了新行并且与现有行之一相同,则将其添加到计数中。
它应该寻找是否: “代码”相同,如果“零件”相同。
我得到了什么:
现在更新代码: CodeCombox 已替换为 textBoxScanner。
private void addcodes()
{
if (!int.TryParse(CountTextBox.Text, out var count)) return;
var product = _bindingList
.FirstOrDefault(prod =>
prod.Code == Convert.ToString(textBoxScanner.Text) &&
prod.Parts == PartsComboBox.Text);
if (product == null)
{
_bindingList.Add(new Product()
{
Code = Convert.ToString(textBoxScanner.Text),
Parts = PartsComboBox.Text,
Count = count
});
}
else
{
product.Count = product.Count + count;
}
textBoxScanner.Focus();
textBoxScanner.Clear();
}
类已更新为字符串:
public class Product : INotifyPropertyChanged
{
private string _code;
private string _parts;
private int _count;
public string Code
{
get => _code;
set
{
_code = value;
OnPropertyChanged();
}
}
public string Parts
{
get => _parts;
set
{
_parts = value;
OnPropertyChanged();
}
}
public int Count
{
get => _count;
set
{
_count = value;
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
【问题讨论】:
-
为什么要创建全新的行然后检查重复项,您应该先检查重复项并增加数量。
标签: c# winforms datagridview count duplicates