WPF实体框架获取Datagrid的前两个单元格的值,然后通过绑定更改第三个单元格的值

WPF实体框架获取Datagrid的前两个单元格的值,然后通过绑定更改第三个单元格的值,wpf,entity-framework,binding,datagrid,collectionviewsource,Wpf,Entity Framework,Binding,Datagrid,Collectionviewsource,这是我的Datagrid的外观,我使用DataContext和CollectionViewSource来填充网格 以下是我为实现此目的而编写的示例代码: <CollectionViewSource x:Key="BeginningBalanceViewSource" d:DesignSource="{d:DesignInstance {x:Type reportModel:BeginningBalance}, CreateList=True}"/> <DataGrid D

这是我的Datagrid的外观,我使用DataContext和CollectionViewSource来填充网格

以下是我为实现此目的而编写的示例代码:

<CollectionViewSource x:Key="BeginningBalanceViewSource" d:DesignSource="{d:DesignInstance {x:Type reportModel:BeginningBalance}, CreateList=True}"/>

<DataGrid  DataContext="{Binding Source={StaticResource BeginningBalanceViewSource}}" ItemsSource="{Binding Source={StaticResource BeginningBalanceViewSource}}">
<DataGrid.Columns>
                <DataGridTemplateColumn Header="Denominations" MinWidth="130">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox BorderThickness="0" IsReadOnly="True" Text="{Binding BBDenomination, Mode=TwoWay, UpdateSourceTrigger=Explicit}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn Header="Pieces">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <controls:NumericUpDown BorderThickness="0" Minimum="0" Value="{Binding BBPieces, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn Header="Amount" MinWidth="130">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox BorderThickness="0" IsReadOnly="True" Text="{Binding BBAmount, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
我编辑了实体类型BeginingBalance.cs(这是可观察集合

如果您注意到了代码,我添加了INotifyPropertyChanged,以便测试一些东西,看看数量(数据网格的第三列)是否会改变(我知道我所做的可能是错误的,请原谅我的愚蠢,因为我在WPF方面缺乏经验)

一切正常,我面临的唯一问题是,我只需要知道如何获取Datagrid的前两个单元格的值,然后通过绑定更改第三个单元格的值。前两个单元格将相乘,然后第三个单元格将在我更改第二个单元格的值后自动获得相乘的值。NumericUpDownColumn是唯一的非只读列,我尝试添加一个事件,是的,它以某种方式工作(但它有点打乱了我的编码方式)

我是否还必须为期初余额创建ViewModelClass?如果有必要,我不知道如何保存按钮上的更改单击我的按钮:

_entities.SaveChanges();
这将直接保存到数据库中


解决此问题后,我将研究MVVM模式。

好的,很抱歉我是个白痴,这和更改我的

public double BBAmount { get; set;}


我只是忘了添加一个
set{}
该死。

你不需要setter-你可以绑定到一个只读属性。我确实这样做了,但它给出了一个错误:实体类型BeginningBalance不是当前上下文模型的一部分,所以我只添加了一个setter,它很好。这是一个完全不同的问题,与绑定无关。哦,好的,嗯,我回家后会好好研究的。
_entities.SaveChanges();
public double BBAmount { get; set;}
public double BBAmount { get{ return BBDenomination * BBPieces; }
            set { }
        }