2
我在这里有一个WPF绑定问题。绑定到可观察子类集
以下设置:
我有有一个名字和子项的的ObservableCollection(还有个叫步骤类)类(ActionService)。一个步骤有一个标志,显示该步骤是否已完成(IsDone)。
我将表单绑定到ActionService并显示所有类型的东西。
一切工作正常,我只是在我的片段中的关键部分。
现在我需要一件事,我无法工作。我想通过绑定知道ActionService有多少个步骤已打开(IsDone == false)。我通过其中一个步骤打开一个孩子表格并更改IsDone-State,母亲表格应该即时获得新的计数。
而且我哑得到的方式;-)
感谢您的帮助或最佳实践正确的解决方案。
public class ActionService : BaseObject
{
\t public ActionService()
\t {
\t }
\t private String name;
\t public String Name
\t {
\t \t get { return this.name; }
\t \t set
\t \t {
\t \t \t this.name = value;
\t \t \t raisePropertyChanged("Name");
\t \t }
\t }
\t public ObservableCollection<Step> actionsteps;
\t public ObservableCollection<Step> ActionSteps
\t {
\t \t get { return this.actionsteps; }
\t \t set
\t \t {
\t \t \t this.actionsteps = value;
\t \t \t raisePropertyChanged("ActionSteps");
\t \t }
\t }
\t
}
public class Step : BaseObject
{
\t public Step()
\t {
\t }
\t
\t private String description;
\t public String Description
\t {
\t \t get { return this.description; }
\t \t set
\t \t {
\t \t \t this.description = value;
\t \t \t raisePropertyChanged("Description");
\t \t }
\t }
\t
\t private Boolean isdone;
\t public Boolean IsDone
\t {
\t \t get { return this.isdone; }
\t \t set
\t \t {
\t \t \t this.isdone = value;
\t \t \t raisePropertyChanged("IsDone");
\t \t }
\t }
}
public class BaseObject : INotifyPropertyChanged
{
\t public event PropertyChangedEventHandler PropertyChanged;
\t protected void raisePropertyChanged(String parPropertyName)
\t {
\t \t if (this.PropertyChanged != null)
\t \t {
\t \t \t this.PropertyChanged(this, new PropertyChangedEventArgs(parPropertyName));
\t \t }
\t }
}
并听取每个操作步骤IsDone属性属性发生变化,当它改变时,重新获得IsDone – Muds 2015-03-19 08:52:14
@Muds:我如何听我的一个安装前后一类的属性更改事件vable集合?多数民众赞成我的失踪链接;-) – Mike 2015-03-19 08:59:00
好,你可以先收听集合中的集合更改事件,然后如果添加一个新的项目,新增加的项目的属性更改+ +事件处理程序,如果项目被删除,删除该事件.. 说得通 ? – Muds 2015-03-19 09:03:59