如何在C#中重置绑定

时间:2017-03-08 15:59:55

标签: c#

    else if (!string.IsNullOrEmpty(cmbProductName.Text) && !string.IsNullOrEmpty(txtQuantity.Text))
        {
            Receipt obj = new Receipt() { Id = order++, ProductName = Convert.ToString(cmbProductName.SelectedItem), Quantity = Convert.ToInt32(txtQuantity.Text), Price = Convert.ToDouble(txtPrice.Text) };
            total += Convert.ToDouble(txtQuantity.Text) * Convert.ToDouble(txtPrice.Text);
            receiptBindingSource.Add(obj);
            receiptBindingSource.MoveLast();
            Clear();           
        }
        txtTotal.Text = String.Format("P{0}", Convert.ToString(total));

    }
        private void refresh() {
        dataGridView1.Rows.Clear();
        dataGridView1.Refresh();

        dataGridView1.DataSource = receiptBindingSource;

    }

任何人都可以帮助我使用什么代码来重置我的绑定。因为当点击新按钮时。产品的计算仍在继续。我正在制作一个计费系统。请帮我。提前致谢。

1 个答案:

答案 0 :(得分:0)

以下是您将要做的事情的基本概述

想象一下,文本框是您的数据网格

您的XAML

<TextBox Text="{Binding SelectedValue,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}">
</TextBox>
<Button Margin="10,0,10,0" Width="100" Content="New" >
   <i:Interaction.Triggers>
      <i:EventTrigger EventName="Click">
         <ei:CallMethodAction 
             TargetObject="{Binding}"
             MethodName="OnNewClicked"/>
       </i:EventTrigger>
   </i:Interaction.Triggers>
</Button>

您的内容为文字

XAML页面的代码隐藏(查看)

public CodeBehindOfYourXAML()
{
  YourViewModel dataContext = new YourViewModel();
  this.DataContext = dataContext;
  InitializeComponent();
}

datacontext是您拥有所有变量的类 ,在这里你绑定你的View(XAML)和你的ViewModel(类)

您的ViewModel

using SimpleMvvmToolkit;

namespace LocationToNamespace.Derp
{
    public class YourViewModel : ViewModelBase<YourViewModel>
    {
        private string _selectedValue;
        public string SelectedValue
        {
            get
            {
                return _selectedValue;
            }
            set
            {
                _selectedValue = value;
                NotifyPropertyChanged(m => m.SelectedValue);
            }
        }
        public void OnNewClicked()
        {
            SelectedValue = string.Empty;
        }
    }
}

viewmodel包含您现在可以简单地绑定到数据网格的所有数据(在本例中为文本框)

每当您对数据网格进行更改时(本例中为文本框),它将自动通过

的组合进行更新
NotifyPropertyChanged(m => m.SelectedValue);//viewmodel
UpdateSourceTrigger=PropertyChanged //XAML

注意下载nuget软件包“SimpleMvvmToolkit”&lt; - 它在viewmodel中使用