绑定到WPF中的结构数组

绑定到WPF中的结构数组,wpf,data-binding,Wpf,Data Binding,在我的应用程序中,我存储了一个结构数组,其中包含我需要向客户支付多少账单/硬币以及有效支付多少 public struct MoneyType { //contains more, but left out for readability public int Requested { get; set; } // How many are requested for a payment public int Paid { get; set; } //bills paid to th

在我的应用程序中,我存储了一个结构数组,其中包含我需要向客户支付多少账单/硬币以及有效支付多少

public struct MoneyType
{ //contains more, but left out for readability
   public int Requested { get; set; }  // How many are requested for a payment
   public int Paid { get; set; } //bills paid to the customer
}
我制作了一个数组,通过以下方式可以访问viewmodel:

MoneyType[] money;  //correctly initialised in the constructor
public MoneyType[] GetMoney()
{
    return money;
}
在viewmodel本身中,我通过以下方式使其可访问:

public MoneyType[] MoneyTypes //Denominations
{
    get
    {
        return _dataService.GetMoney();
    }
} 
最后,在我的XAML中,我访问了以下内容:

<cbtn:BillCounter x:Name="euro200" Value = "{Binding MoneyTypes[2].Paid, Mode=TwoWay }" />

[2]用于指示我要使用哪种类型的纸币/硬币

我想通过两种方式实现这一点,以便我的自定义控件可以更新已支付的硬币/纸币的金额。为此,我需要为我的MoneyTypes属性设置一个setter

我不确定这样做的正确方法。我有一种感觉,不知何故,我不应该从我的viewmodel/模型中传递整个数组,而应该传递我的一个MoneyTypes的特定部分(paid/request字段,带有某种索引指示要使用哪个条目)


我不知道该怎么做。

希望这个答案能帮助你-


基于此,您需要将引用数据类型用于绑定。

恐怕。数据绑定不适用于struct。如果需要双向的话,你真的应该把它变成一个类。如果我把结构改成类,我该怎么处理呢?这主要是我没有得到的设置部分。如何告诉模型数组中的条目已更改?或者,通过将整个数组从模型传递到viewmodel,我是否已经做错了,我是否应该采取不同的做法?您必须实现INotifyPropertyChanged,以便您的更改在视图中可见。您的结构没有实现它,所以即使您从ViewModel中更改了某些内容,它也不会在视图中更改。