绑定到 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 字段,带有某种索引指示要使用的条目)
我不确定该怎么做。
希望这个答案对您有所帮助 -
基于此,您需要使用引用数据类型进行绑定。
在我的应用程序中,我存储了一个结构数组,其中包含我需要向客户支付的金额 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 字段,带有某种索引指示要使用的条目)
我不确定该怎么做。
希望这个答案对您有所帮助 -
基于此,您需要使用引用数据类型进行绑定。