This question is locked. New answers and comments are not allowed.
In the example below when calculating the "Total Price" multiplying the
value of "quantity" by "Unit Price" column after informing the "Unit
Price" column and go to the "Total Price" column the value of "Total
Price" is calculated normally. If I go to any other column of the grid the value of "Total Price" is not calculated. What should I do to fix this?
<UserControl x:Class="SilverlightApplication1.MainPage" mc:Ignorable="d" xmlns:dataFormToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit" xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:grid="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView" VerticalAlignment="Top" Width="548" Height="570"> <Grid Name="LayoutRoot" Loaded="LayoutRoot_Loaded"> <grid:RadGridView Name="CotacaoGrid" AutoGenerateColumns="False" ShowGroupPanel="False" Width="490" DataContext="{Binding}" Height="217" IsFilteringAllowed="False" ScrollViewer.HorizontalScrollBarVisibility="Disabled" SelectionChanged="CotacaoGrid_SelectionChanged" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,40,0,0" > <grid:RadGridView.Columns> <grid:GridViewDataColumn Header="Código" DataMemberBinding="{Binding Codigo}" /> <grid:GridViewDataColumn Header="Nome" DataMemberBinding="{Binding Nome}" /> <grid:GridViewDataColumn Header="Descrição" DataMemberBinding="{Binding Descricao}" /> <grid:GridViewDataColumn Header="Data" DataMemberBinding="{Binding Data}" /> <grid:GridViewDataColumn Header="Situação" DataMemberBinding="{Binding Situacao}" /> <grid:GridViewDataColumn Header="Data Entrega" DataMemberBinding="{Binding DataEntrega}" /> <grid:GridViewDataColumn Header="IdMaster" DataMemberBinding="{Binding IdMaster}" /> <grid:GridViewDataColumn Header="CodigoFornecedor" DataMemberBinding="{Binding IdMaster}" /> </grid:RadGridView.Columns> </grid:RadGridView> <grid:RadGridView Name="CotacaoProdutoGrid" AutoGenerateColumns="False" ShowGroupPanel="False" Width="Auto" DataContext="{Binding}" Height="200" IsFilteringAllowed="False" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,290,0,0" CellEditEnded="CotacaoProdutoGrid_CellEditEnded" BeginningEdit="CotacaoProdutoGrid_BeginningEdit" IsScrolling="False" IsTabStop="True" IsSynchronizedWithCurrentItem="True" CanUserFreezeColumns="False"> <grid:RadGridView.Columns> <grid:GridViewDataColumn Header="Código" DataMemberBinding="{Binding CodigoProduto}" /> <grid:GridViewDataColumn Header="Marca" DataMemberBinding="{Binding Marca}" /> <grid:GridViewDataColumn Header="Observação" DataMemberBinding="{Binding Observacao}" /> <grid:GridViewDataColumn Header="Quantity" DataMemberBinding="{Binding Quantidade}" /> <grid:GridViewDataColumn Header="Unit Price" DataMemberBinding="{Binding ValorUnitario}" DataFormatString="{}{0:c}"/> <grid:GridViewDataColumn Header="Total Price" DataMemberBinding="{Binding ValorTotal}" /> <grid:GridViewDataColumn x:Name="teste01" /> </grid:RadGridView.Columns> </grid:RadGridView> </Grid></UserControl>using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using System;using System.Collections.Generic;using System.Reflection;using System.Resources;using System.Windows;using System.Windows.Controls;using Telerik.Windows.Controls;namespace SilverlightApplication1{ public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); } List<ListaCampos.Campos> listaCotacao = new List<ListaCampos.Campos>(); private void LayoutRoot_Loaded(object sender, RoutedEventArgs e) { listaCotacao = new List<ListaCampos.Campos>(); ListaCampos.Campos camposCotacao = new ListaCampos.Campos(); camposCotacao.Codigo = "01"; camposCotacao.Nome = "Microsoft"; camposCotacao.Descricao = "Software"; camposCotacao.IdMaster = "0000000001"; camposCotacao.Data = "20/10/2010"; camposCotacao.Situacao = "Open"; camposCotacao.CodigoFornecedor = "1"; camposCotacao.DataEntrega = "20/12/2010"; listaCotacao.Add(camposCotacao); ListaCampos.Campos camposCotacao2 = new ListaCampos.Campos(); camposCotacao2.Codigo = "02"; camposCotacao2.Nome = "Dell"; camposCotacao2.Descricao = "HardWare"; camposCotacao2.IdMaster = "0000000002"; camposCotacao2.Data = "01/11/2010"; camposCotacao2.Situacao = "Open"; camposCotacao2.CodigoFornecedor = "3"; camposCotacao2.DataEntrega = "20/11/2010"; listaCotacao.Add(camposCotacao2); ListaCampos.Campos camposCotacao1 = new ListaCampos.Campos(); camposCotacao1.Codigo = "01"; camposCotacao1.Nome = "Borland"; camposCotacao1.Descricao = "Software"; camposCotacao1.IdMaster = "0000000001"; camposCotacao1.Data = "20/10/2010"; camposCotacao1.Situacao = "Open"; camposCotacao1.CodigoFornecedor = "2"; camposCotacao1.DataEntrega = "20/12/2010"; listaCotacao.Add(camposCotacao1); ListaCampos.Campos camposCotacao3 = new ListaCampos.Campos(); camposCotacao3.Codigo = "02"; camposCotacao3.Nome = "IBM"; camposCotacao3.Descricao = "HardWare"; camposCotacao3.IdMaster = "0000000002"; camposCotacao3.Data = "01/11/2010"; camposCotacao3.Situacao = "Open"; camposCotacao3.CodigoFornecedor = "4"; camposCotacao3.DataEntrega = "20/11/2010"; listaCotacao.Add(camposCotacao3); CotacaoGrid.ItemsSource = listaCotacao; } public string ValorCodigo { get; set; } public string ValorTexto { get; set; } private void CotacaoGrid_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangeEventArgs e) { ListaCampos.Campos teste = (CotacaoGrid.SelectedItem as ListaCampos.Campos); ValorCodigo = teste.IdMaster.ToString(); ValorTexto = teste.CodigoFornecedor.ToString(); List<ListaCampos.Campos> listaCotacaoProduto = new List<ListaCampos.Campos>(); if (ValorCodigo == "0000000001") { ListaCampos.Campos camposCotacao1 = new ListaCampos.Campos(); camposCotacao1.IdMaster = "0000000001"; camposCotacao1.CodigoProduto = "125"; camposCotacao1.Marca = "Rad Developer"; camposCotacao1.Observacao = "Urgente"; camposCotacao1.Quantidade = 5; camposCotacao1.ValorUnitario = 0; camposCotacao1.ValorTotal = 0; listaCotacaoProduto.Add(camposCotacao1); ListaCampos.Campos camposCotacao2 = new ListaCampos.Campos(); camposCotacao2.IdMaster = "0000000001"; camposCotacao2.CodigoProduto = "126"; camposCotacao2.Marca = "Rad Tester"; camposCotacao2.Observacao = "Urgente"; camposCotacao2.Quantidade = 5; camposCotacao2.ValorUnitario = 0; camposCotacao2.ValorTotal = 0; listaCotacaoProduto.Add(camposCotacao2); } if (ValorCodigo == "0000000002") { ListaCampos.Campos camposCotacao1 = new ListaCampos.Campos(); camposCotacao1.IdMaster = "0000000002"; camposCotacao1.CodigoProduto = "486"; camposCotacao1.Marca = "Desktop Computer"; camposCotacao1.Observacao = "Urgente"; camposCotacao1.Quantidade = 5; camposCotacao1.ValorUnitario = 0; camposCotacao1.ValorTotal = 0; listaCotacaoProduto.Add(camposCotacao1); ListaCampos.Campos camposCotacao2 = new ListaCampos.Campos(); camposCotacao2.IdMaster = "0000000002"; camposCotacao2.CodigoProduto = "586"; camposCotacao2.Marca = "Power Supply"; camposCotacao2.Observacao = "Urgente"; camposCotacao2.Quantidade = 5; camposCotacao2.ValorUnitario = 0; camposCotacao2.ValorTotal = 0; listaCotacaoProduto.Add(camposCotacao2); } CotacaoProdutoGrid.ItemsSource = listaCotacaoProduto; } public object produtoRegistroSelecionado { get; set; } private void CotacaoProdutoGrid_BeginningEdit(object sender, GridViewBeginningEditRoutedEventArgs e) { produtoRegistroSelecionado = CotacaoProdutoGrid.CurrentItem; } private void CotacaoProdutoGrid_CellEditEnded(object sender, GridViewCellEditEndedEventArgs e) { ListaCampos.Campos teste = (produtoRegistroSelecionado as ListaCampos.Campos); teste.ValorTotal = teste.ValorUnitario * teste.Quantidade; } } public class ListaCampos { public class Campos { public string Codigo { get; set; } public string Nome { get; set; } public string Descricao { get; set; } public string IdMaster { get; set; } public string Data { get; set; } public string DataEntrega { get; set; } public string Marca { get; set; } public string Situacao { get; set; } public string CodigoFornecedor { get; set; } public string Observacao { get; set; } public double Quantidade { get; set; } public double ValorUnitario { get; set; } public double ValorTotal { get; set; } public string CodigoProduto { get; set; } } }}