Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将TextBox多重绑定值绑定到另一个属性_C#_Wpf_Xaml_Mvvm - Fatal编程技术网

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}”