c# - 防止按钮点击事件,根据条件向Listview添加行

标签 c# wpf xaml

我是 xaml 和 c# 新手,如果 ProductID 已存在,如何防止按钮单击事件向 Listview 添加新行

private void btnAddToOrder_Click(object sender, RoutedEventArgs e)
{
    //addtoorders
    if (listStocks.SelectedIndex >= 0)
    {
        DataRowView row = (DataRowView)listStocks.SelectedItems[0];

        List<Orders> orders = new List<Orders>();
        orders.Add(new Orders()
        {
            ProductID = row["productID"].ToString(),
            ProductName = row["productName"].ToString(),
            Price = Convert.ToDouble(row["sellingPrice"]),
            Quantity = Convert.ToInt32(row["quantity"])

        });
        listOrders.Items.Add(orders);
      }
 }

最佳答案

private void btnAddToOrder_Click(object sender, RoutedEventArgs e)
    {


        //addtoorders
        if (listStocks.SelectedIndex >= 0)
        {
            DataRowView row = (DataRowView)listStocks.SelectedItems[0];

            Orders newOrder = new Orders()
            {
                ProductID = row["productID"].ToString(),
                ProductName = row["productName"].ToString(),
                Price = Convert.ToDouble(row["sellingPrice"]),
                Quantity = Convert.ToInt32(row["quantity"])

            };
            List<Orders> orders = new List<Orders>();
            //
            bool found = false;
            foreach(Orders order in orders)
            {
                if (order.Equals(newOrder))
                {
                    //if Found Order Equal NewOrder
                    found = true;
                    break;
                }
            }
            if(found == true)
            {
                Console.WriteLine("We are Found Order = NewOrder");
                return; //Exit From Method
            }
            //If Found == false
            orders.Add(newOrder);
            listOrders.Items.Add(orders);
        }
    }

关于c# - 防止按钮点击事件,根据条件向Listview添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38814531/

相关文章:

c# - ASP .NET MVC 网络服务和 PostRepository

c# - Metro C# 中缺少 String.Intern() 方法

.net - 我可以将 WPF TreeView 绑定(bind)到单个根节点吗?

wpf - 在 App.xaml.cs 中获取应用程序运行路径

wpf - 正确的 MVVM 模式 WPF 命令实现

c# - ListBoxItem 与 ListViewItem 的 GridViewColumn 绑定(bind)

c# - 检测用户控件中的 DataContext 更改

c# - 为什么反序列化时 XmlReader/XmlSerializer 会弄乱文本中的行跳转?

c# - Ninject 按参数名称绑定(bind)

c# - MVVM : Binding Command with Observable collection to Listbox and taking values from textbox