绑定到 WPF 中的结构数组

Binding to an array of structs in WPF

在我的应用程序中,我存储了一个结构数组,其中包含我需要向客户支付的金额 bills/coins 以及我实际支付的金额。

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
}

我用这些创建了一个数组,我可以通过以下方式访问视图模型:

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]是用来表示我要使用哪种类型的bills/coins。

我想使这项工作有 2 种方式,以便我的自定义控件可以更新 coins/bills 支付的金额。为此,我的 MoneyTypes 属性 需要一个 setter。

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

我不确定该怎么做。

希望这个答案对您有所帮助 -

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