【发布时间】:2010-07-28 17:35:29
【问题描述】:
我正在制作一个使用“信封”作为预算方法的小型个人理财计划。我主要这样做是为了学习 WPF 和 MVVM。我遇到了一个问题,我无法将数据绑定到我在自定义 ObservableCollection 中创建的自定义属性,请参见此处:
public class ObservableEnvelopeCollection : ObservableCollection<Envelope>
{
public decimal Total
{
get
{
decimal total = 0;
foreach (Envelope env in this)
{
total += env.Balance;
}
return total;
}
}
public decimal SavingsTotal
{
get
{
blah blah. . .
}
}
}
我可以毫无问题地将我的数据网格数据绑定到集合,但是在我的数据网格下面我有标签,我需要显示集合中信封的余额总数。我可以将数据绑定到集合的 Count 属性,这是父 ObservableCollection 类的属性,但我无法从我的自定义类中数据绑定到 Total 或 SavingsTotal。
程序运行时标签是空白的,如果我使用 VS2010 设计器并转到标签内容的小数据绑定向导,它有“总计”下划线并显示工具提示:“路径项‘总计’不能解决。”同样,如果我将 Path 更改为 EnvColl.Count,它会起作用。
<Label Content="{Binding Path=EnvColl.Total}"/>
另外请注意,在我的 ViewModel 中,我可以毫无问题地访问我的集合中的 Total 和 SavingsTotal 属性,只是在 XAML/数据绑定中它不起作用。
【问题讨论】:
-
您是否尝试过在 Binding 上使用 BindsDirectlyToSource=true?
标签: wpf mvvm binding observablecollection