silverlight:帮助您使用IEnumerable

silverlight:帮助您使用IEnumerable,silverlight,listbox,ienumerable,Silverlight,Listbox,Ienumerable,请告诉我需要帮助: 我有一个绑定到IEnumerable源的列表框 Person是一个包含以下属性的类:Name(string)、isChecked(bool) 我需要为名为“Bob”的特定人员更改属性“isChecked” 我不能改变财产的价值 请帮助如果在更新模型时试图更新显示的值,则可能需要在模型类上实现INotifyPropertyChanged,例如 public class Person : INotifyPropertyChanged { public string Nam

请告诉我需要帮助:

我有一个绑定到IEnumerable源的列表框

Person是一个包含以下属性的类:Name(string)、isChecked(bool)

我需要为名为“Bob”的特定人员更改属性“isChecked”

我不能改变财产的价值


请帮助

如果在更新模型时试图更新显示的值,则可能需要在模型类上实现INotifyPropertyChanged,例如

public class Person : INotifyPropertyChanged
{
    public string Name
    {
        get
        {
            return this.name;
        }
        set
        {
            this.name = value;
            this.FirePropertyChanged("Name");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void FirePropertyChanged(string propertyName)
    {
        if (this.PropertyChanged != null)
        {
            this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

我想你只需要改变一下就可以了

根据您拥有的数据量,最简单的实现方法是将您在模型中的数据扩展到例如
列表
,然后进行修改并将您的控件绑定到该列表

var people = myDataSource.ToList(); // a LINQ extension - you may need a 'using'
var bob = people.FirstOrDefault(p => p.Name == "Bob");
if (bob != null)
{
    bob.isChecked = true;
}
或者,可能更好的方法是使用Select()等即时进行更改


你现在有什么代码?
var peopleWithBobTicked = myDataSource.Select(
    p => {
             if (p.Name == "BoB") p.isTicked = true;
             return p;
         });