0

WPF とエンティティ フレームワークで dataGrid を表示します。列 2 には単位あたりの価格があり、列 3 には数量があり (列 4 には割引があります)、列 5 は要約になります。私の質問は、3 番目の列をキャプチャして、合計列の変化を計算する方法です。

ここにコードがありますデータを表示するにはどうすればよいですか

          <DataGrid.Columns>
            <DataGridComboBoxColumn x:Name="ddd"  Header="Expenses" Width="*" SelectedValueBinding="{Binding Path=ExpensesId}" DisplayMemberPath="ExpensesName" SelectedValuePath="ExpensesTypeId"/>
            <DataGridTextColumn Header="price" Width="*" Binding="{Binding Path=Expenses.PricePorEach}"/>
            <DataGridTextColumn Header="quantity" Width="50"  Binding="{Binding Path=Quantity}"/>
            <DataGridTextColumn Header="discount" Width="*" Binding="{Binding Path=Discount}"/>
            <DataGridTextColumn Header="Total" Width="*" Binding="{Binding Path=Total}"/>
        </DataGrid.Columns>
    </DataGrid>

      ContractorEntities ce = new ContractorEntities();
    public MainWindow()
    {
        InitializeComponent();
        BindData();
    }
    private void BindData()
    {
        var dataSource = new  ObservableCollection<Jobs>(ce.Jobs);
        dataSource.CollectionChanged += CollectionChanged;
        dg.ItemsSource = dataSource;
        dg.DataContext = dataSource;

    }
    private void CollectionChanged(object sender,  NotifyCollectionChangedEventArgs e)
    {
        if (e.Action == NotifyCollectionChangedAction.Add)
            foreach (Jobs job in e.NewItems)
                  ce.Jobs.Add(job);

        else if (e.Action == NotifyCollectionChangedAction.Remove)
            foreach (Jobs jobin e.OldItems)
                ce.Jobs.Remove(job);
    }
    private void saveButton_Click(object sender, RoutedEventArgs e)
    {
        ce.SaveChanges();
    }
    [NotMapped]
    public decimal? Total
    {
        get
        {
            return (Price * Quantity) - Discount;
        }
        set { }
    }

    public void OnDiscountChanged()
    {
        base.OnPropertyChanged("Total");//This line is not known
    }

    public void OnPriceChanged()
    {
        base.OnPropertyChanged("Total");//This line is not known
    }

    public void OnQuantityChanged()
    {
        base.OnPropertyChanged("Total");//This line is not known
    }

}

いくつかの方法を試しましたが、結果はありませんでした

助けてくれてありがとう

4

1 に答える 1