C# 将TextBox多重绑定值绑定到另一个属性
这是我的实体类C# 将TextBox多重绑定值绑定到另一个属性,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,这是我的实体类 public class Item { private int _stockIn; private int _stockOut; private int _newStock; public int StockIn { get { return _stockIn; } set { _stockIn = value; OnPropertyChang
public class Item
{
private int _stockIn;
private int _stockOut;
private int _newStock;
public int StockIn
{
get { return _stockIn; }
set
{
_stockIn = value;
OnPropertyChanged("StockIn");
}
}
public int StockOut
{
get { return _stockOut; }
set
{
_stockOut = value;
OnPropertyChanged("StockOut");
}
}
public int NewStock
{
get { return _newStock; }
set
{
_newStock = value;
OnPropertyChanged("NewStock");
}
}
}
这是我的视图模型类
public class ItemViewModel
{
private List<Item> _itemCollection;
public List<Item> ItemCollection
{
get { return _itemCollection; }
set
{
_itemCollection = value;
OnPropertyChanged("ItemCollection");
}
}
}
公共类ItemViewModel
{
私人列表(itemCollection);;
公共列表项集合
{
获取{return\u itemCollection;}
设置
{
_itemCollection=值;
OnPropertyChanged(“ItemCollection”);
}
}
}
这是xaml
我认为在转换器中执行一些“业务”逻辑不是一个好主意。您应该准备一个更好的视图模型。视图模型应包含具有附加属性和剩余库存量的项目。
我不知道您想要实现什么,但看起来您可以进行一些计算(在检索数据时)以将减去的值存储在NewStock属性中,并将其绑定到文本框 我认为在转换器中执行一些“业务”逻辑不是一个好主意。您应该准备一个更好的视图模型。视图模型应包含具有附加属性和剩余库存量的项目。
我不知道您想要实现什么,但看起来您可以进行一些计算(在检索数据时)以将减去的值存储在NewStock属性中,并将其绑定到文本框 除了在检索数据时进行计算外,还可以添加一个只读的新属性,应用列表对象的两个属性的值
public int NetStock
{get { return _stockIn - _stockOut; }}
由于绑定已经绑定到您的库存项,并且其他值也存在,因此您只需绑定到一个属性并显示净差异(或任何您需要的计算)。然后对“NetStock”进行标准的单绑定
但是,请注意,此字段应该是可编辑的,但计算值如何编辑。您不能只获取并任意将编辑的值应用于其中一个。因此,您的自定义绑定控件似乎允许编辑in或out,这将重新计算总净值。在这种情况下,我会更新您的其他属性,以执行RaisePropertyChanged(“NetStock”)操作,因此当其中一个属性发生更改时,NetStock值也会刷新。除了在检索数据时进行计算外,您还可以添加一个只读的新属性,应用列表对象的两个属性的值
public int NetStock
{get { return _stockIn - _stockOut; }}
由于绑定已经绑定到您的库存项,并且其他值也存在,因此您只需绑定到一个属性并显示净差异(或任何您需要的计算)。然后对“NetStock”进行标准的单绑定
但是,请注意,此字段应该是可编辑的,但计算值如何编辑。您不能只获取并任意将编辑的值应用于其中一个。因此,您的自定义绑定控件似乎允许编辑in或out,这将重新计算总净值。在这种情况下,我会更新您的其他属性,以执行RaisePropertyChanged(“NetStock”)操作,因此当其中一个属性发生更改时,NetStock值也会刷新。对不起!我在写这个任务时犯了一个错误。。在xaml文件中,datagrid ItemsSource应该是ItemsSource=“{Binding ItemCollection}”对不起!我在写这个任务时犯了一个错误。。在xaml文件中,datagrid ItemsSource应为ItemsSource=“{Binding ItemCollection}”