Skip to main content

WPF datagrid cell textbox change event






Entity/Class:


  public class FeesDetails : INotifyPropertyChanged  
   {  
     public int Id { get; set; }  
     public string FeesName { get; set;}  
     public string FeesDetailsName { get; set; }  
     public int? PaidAmount { get; set; }  
     public event PropertyChangedEventHandler PropertyChanged;  
     private void NotifyPropertyChanged(System.String info)  
     {  
       if (PropertyChanged != null)  
       {  
         PropertyChanged(this, new PropertyChangedEventArgs(info));  
       }  
     }  
     public int feesAmount { get; set; }  
     public int FeesAmount  
     {  
       get  
       {  
         return this.feesAmount;  
       }  
       set  
       {  
         if (value != this.feesAmount)  
         {  
           this.feesAmount = value;  
           NotifyPropertyChanged("FeesAmount");  
         }  
       }  
     }  
   }  

XAML:


  <DataGrid   
       AutoGenerateColumns="False"   
       Height="211" HorizontalAlignment="Left"   
       Margin="174,177,0,0" Name="setupFeesDataGrid"   
       VerticalAlignment="Top" Width="414"   
       CanUserAddRows="False">  
       <DataGrid.Columns>  
         <DataGridTextColumn Header="Fees Details Name" Binding="{Binding Path=FeesName}" Width="250"/>  
         <DataGridTemplateColumn Header="Fees Amount" Width="80">  
           <DataGridTemplateColumn.CellTemplate >  
             <DataTemplate >  
               <TextBox Name="feesAmountTextBox" TextChanged="feesAmountTextBox_TextChanged" Text="{Binding Path=FeesAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ></TextBox>  
             </DataTemplate>  
           </DataGridTemplateColumn.CellTemplate>  
         </DataGridTemplateColumn>  
       </DataGrid.Columns>  
     </DataGrid>  

CS code :


  private void feesAmountTextBox_TextChanged(object sender, TextChangedEventArgs e)  
     {  
       FeesDetails chalan = new FeesDetails();  
       chalan = setupFeesDataGrid.SelectedItem as FeesDetails;// get selected item  
       // Other i am summarizing grid cell value in a combobox  
       decimal TGBP = 0 ;  
       for (int i = 0; i < setupFeesDataGrid.Items.Count; i++)  
       {  
         FeesDetails obj = setupFeesDataGrid.Items[i] as FeesDetails;  
         TGBP += Convert.ToDecimal(obj.FeesAmount); // getting cell value   
       }  
       totalTextBox.Text = TGBP.ToString("F");   
     }  



Comments

Popular posts from this blog

C# run powershell script as administrator

Recently I was fetching a problem that I need to run a PowerShell script that will change TFS user Display name and SID. I was trying to run that script from C# that was not working due to TFS security update and TLS certificate. Using this code block I resolve the Issue. var newProcessInfo = new System.Diagnostics.ProcessStartInfo(); newProcessInfo.FileName = @"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"; newProcessInfo.Verb = "runas"; // Define Run as administrator newProcessInfo.Arguments = script; //Define your powershell script newProcessInfo.UseShellExecute = false; newProcessInfo.RedirectStandardOutput = true; // This will enable to read Powershell run output newProcessInfo.RedirectStandardError = true; Process proces = System.Diagnostics.Process.Start(newProcessInfo); proces.WaitForExit(); // I want to read the output string from powershell window StringBuilder output = new StringBuilder(); output.Append("Started"); while (!proces.St

ASP.NET MVC razor SAP Crystal report

Crete a new project: Add a aspx Master Page Create a new folder Reports and 2 sub folder crystal & crystalviewer Now add a web form page in crystalviewer  folder. Add the master page namespace in your web form page. MasterPageFile ="~/Views/Shared/ReportSite.Master" Replace your web form by this code < asp : Content ID ="Content1" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server">      </ asp : Content > Now go to design mode of your web form drag & drop the crystal report viewer in your web form. After that your page will be look look like this. Replace the code: < CR : CrystalReportViewer ID ="EmployeeList" runat ="server"   HasCrystalLogo ="False"     AutoDataBind ="True"   Height ="50px"   EnableParameterPrompt ="false" EnableDatabaseLogonPrompt

mvc razor textboxfor change event change another textboxfor value

Based on value of Weight, Rate , CNF & AWB it will change the value of Freight , TTLCNF anfd TTLFright . Freight= Weight*Rate; TTLCNF  = Weight*CNF; TTLFright=  Freight+ TTLCNF  + AWB; @Html.TextBoxFor(model => model.Weight, new { onChange="return GetWight(this);"}) @Html.TextBoxFor(model => model.Rate, new { onChange="return GetWight(this);"})/Kg @Html.TextBoxFor(model => model.Freight, new {disabled = "disabled" , @readonly = "readonly" ,onChange="return GetTTLFright(this);"}) @Html.TextBoxFor(model => model.CNFPK, new { onChange="return GetCNFPK(this);"}) @Html.TextBoxFor(model => model.TTLCNF, new {disabled = "disabled" , @readonly = "readonly",onChange="return GetTTLFright(this);" }) @Html.TextBoxFor(model => model.AWB, new { onChange="return GetTTLFright(this);"}) and script <script> function GetW